摘要: 一、DatagramChannel DatagramChannel 是一种能够发送和接收 UDP 数据包的Channel ,由于 UDP 是一种无连接的网络协议,所以默认情况下,使用者不能像对其它Channel(比如ServerSocketChannel和SocketChannel)那样直接对 Da 阅读全文
posted @ 2026-02-03 09:53 Carey_ccl 阅读(1) 评论(0) 推荐(0)
摘要: Java NIO 由以下几个核心部分组成: ①、Channels,类似于传统IO中的流(Stream); ②、Buffers; ③、Selectors 虽然Java NIO 中除此之外还有很多类和组件,但是核心还是Channel,Buffer 和 Selector ,像其它组件Pipe、FileLo 阅读全文
posted @ 2026-02-03 09:35 Carey_ccl 阅读(3) 评论(0) 推荐(0)
摘要: Spring-Boot 特点如下: ①、创建独立的 Spring 应用程序; ②、嵌入的 Tomcat,无须部署 .war 文件; ③、简化 Maven 配置; ④、自动配置 Spring; ⑤、提供生产就绪型功能,如指标、健康检查和外部配置;绝对没有代码生成,以及对XMIL没有配置要求。 1、启动 阅读全文
posted @ 2026-01-18 22:35 Carey_ccl 阅读(14) 评论(0) 推荐(0)
摘要: Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的 API,用于在两个应用程序之间或分布式系统中发送消息,并进行异步通信。Java 消息服务是一个与具体平台无关的 API,绝大多数 MOM 提供商都对 JMS 提供支持。 阅读全文
posted @ 2026-01-17 11:54 Carey_ccl 阅读(2) 评论(0) 推荐(0)
摘要: Java远程方法调用,即JavaRMI(JavaRemote Method Invocation),是Java 编程语言里一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使 Java 编程人员能够在网络环境中分布操作。RMI全部的宗旨就是 阅读全文
posted @ 2026-01-15 23:05 Carey_ccl 阅读(4) 评论(0) 推荐(0)
摘要: 阅读此篇博客之前,请先阅读上一篇博客的内容:Spring 源码解析12——整合SpringMVC(一) 1、DispatcherServlet 的逻辑处理 根据之前的示例,我们知道在HttpServlet.class中分别提供了相应的服务方法,它们是doDelete()、doGet()、doOpti 阅读全文
posted @ 2026-01-12 20:48 Carey_ccl 阅读(4) 评论(0) 推荐(0)
摘要: Spring 的 MVC是基于 Servlet功能实现的,通过实现 Servlet接口的 DispatcherServlet 来封装其核心功能实现,通过将请求分派给处理程序,同时带有可配置的处理程序映射、视图解析本地语言、主题解析以及上载文件支持。默认的处理程序是非常简单的Controller.in 阅读全文
posted @ 2026-01-12 09:05 Carey_ccl 阅读(2) 评论(0) 推荐(0)
摘要: MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由Apache Software Foundation 迁移到了 Google Code,并且改名为 MyBatis。 MyBatis是支持普通 SQL查询、存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有 阅读全文
posted @ 2026-01-02 20:47 Carey_ccl 阅读(4) 评论(0) 推荐(0)
摘要: JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行 SQL语句的 Java API可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的 API,据此可以构建更高级的工具和接口,使数据库开 阅读全文
posted @ 2026-01-02 16:18 Carey_ccl 阅读(1) 评论(0) 推荐(0)
摘要: 1、创建AOP静态代理 AOP 的静态代理主要是在虚拟机启动时通过改变 目标对象字节码的方式来完成对目标对象的增强,它与动态代理相比具有更高的效率,因为在动态代理调用的过程中,还需要一个动态创建代理类并代理目标对象的步骤,而静态代理则是在启动时便完成了字节码增强,当系统再次调用目标类时与调用正常的类 阅读全文
posted @ 2026-01-01 21:07 Carey_ccl 阅读(3) 评论(0) 推荐(0)
摘要: 1、动态AOP自定义标签 如果声明了自定义的注解,那么就一定会在程序中的某个地方注册了对应的解析器。我们搜索整个代码,尝试找到注册的地方,全局搜索后发现了在AopNamespaceHandler.class 中对应着这样一段函数: public class AopNamespaceHandler e 阅读全文
posted @ 2025-12-28 23:46 Carey_ccl 阅读(7) 评论(0) 推荐(0)
摘要: 1、ApplicationContext.interface接口介绍 在前面博客中,我们一直BeanFactory.interface接口的实现类XmlBeanFactory.java,Spring中可以通过这个class实现加载配置文件的功能。但是,Spring中还提供了另一个接口Applicat 阅读全文
posted @ 2025-12-27 11:03 Carey_ccl 阅读(3) 评论(0) 推荐(0)
摘要: 8、创建Bean(接Spring源码解析5——bean的加载(一) 中标题6、创建ObjectFactory<?>.java类型的实例(准备创建Bean)的第④步) 当经历了AbstractAutowireCapableBeanFactory.java:createBean() 中的 Abstrac 阅读全文
posted @ 2025-12-26 12:32 Carey_ccl 阅读(8) 评论(0) 推荐(0)
摘要: 1、加载bean的概述 当Spring将Xml配置文件的解析后,生成了BeanDefinition.interface类型的各种配置实例,如:GenericBeanDefinition.java等。接下来,就要解析BeanDefinition.interface类型的各种配置,生成我们需要的实例。 阅读全文
posted @ 2025-12-26 12:31 Carey_ccl 阅读(5) 评论(0) 推荐(0)
摘要: 1、解析函数入口 2、自定义标签的使用 Spring可以为系统提供可配置化支持,简单做法就是直接基于Spring的标准bean来配置,但是spring的标准bean在配置较为复杂或是需要更多丰富控制的时候,会显得非常笨拙。一般做法会用原生态的方式解析定义好的XML文件,然后转化为配置对象。 Spri 阅读全文
posted @ 2025-12-26 12:31 Carey_ccl 阅读(1) 评论(0) 推荐(0)
摘要: 1.3、AbstractBeanDefinition属性 1.3.1、AbstractBeanDefinition.java概要 至此我们便完成了对XML 文档到GenericBeanDefinition.java 的转换, 也就是说到这里, XML中所有的配置都可以在GenericBeanDefi 阅读全文
posted @ 2025-12-26 12:31 Carey_ccl 阅读(4) 评论(0) 推荐(0)
摘要: 1、bean标签的解析及注册 1.1、bean标签解析前准备 通过org.springframework.beans.factory.xml.BeanDefinitionParserDelegate类型的delegate对象和org.w3c.dom.Element类型的root对象,解析xml文件中 阅读全文
posted @ 2025-12-23 23:53 Carey_ccl 阅读(6) 评论(0) 推荐(0)
摘要: 一、Spring整体架构 1.1、Core Container Core Container(核心容器)包含有Core、Beans、Context、Expression Language模块。Core和Bean模块是框架的基础部分,提供Ioc(控制反转)和DI(依赖注入)。这里的基础概念是BeanF 阅读全文
posted @ 2025-12-23 20:22 Carey_ccl 阅读(13) 评论(0) 推荐(0)
摘要: JavaRMI(Remote Method Invocation)是Java编程语言实现的远程方法调用机制,属于分布式对象模型,保留Java平台对象模型的语义。该技术自JDK1.1版本引入,支持不同Java虚拟机间的对象方法调用,为纯Java分布式应用提供核心解决方案。 在Spring中,也提供了对 阅读全文
posted @ 2025-12-22 22:39 Carey_ccl 阅读(3) 评论(0) 推荐(0)
摘要: 一、Spring中的事务 1.1、事务的不一致性: 在转账过程中,一个账户加钱,另一个账户就需要减钱;如果在这个时间中,程序发生了故障,则有能导致数据库发生不一致,出现一种特殊情况:一个账户有改变,另一个账户没有改变。这个情况下,就是事务的不一致性。如下例子: mysql数据库中有一张account 阅读全文
posted @ 2025-12-21 12:16 Carey_ccl 阅读(10) 评论(0) 推荐(0)
摘要: 一、模式定义: 保证一个类只有一个实例,并且提供一个全局访问点 二、使用场景: 重量级对象,不需要多个实例,如:线程池,数据库连接池 三、类图: 四、不同方式创建的单例设计与区别 4.1、懒汉单例模式 懒汉单例模式的特点是延迟加载,只有在真正使用的时候,才开始实例化,用该方式创建单例对象时,对于线程 阅读全文
posted @ 2026-02-08 17:12 Carey_ccl 阅读(11) 评论(0) 推荐(0)
摘要: Solid原则是为针对面向对象的程序语言设计,从本质上来讲,SOLID是5个原则的缩写,这5个原则有助于软件设计:更加容易理解,更灵活,可维护性更强。这个与掌握软件设计原理无关,这个原理是很多原则的子集。 单一职责原则(Single responsibility principle) 开闭原则(op 阅读全文
posted @ 2026-02-08 15:55 Carey_ccl 阅读(2) 评论(0) 推荐(0)
摘要: 操作系统使用文件描述符来指代一个打开的文件,对文件的读写操作,都需要文件描述符指向存储设备的不透明标识符。Java虽然在设计上使用了抽象程度更高的流来作为文件操作的模型,但是底层依然要使用文件描述符与操作系统交互,而Java世界里文件描述符的对应类就是FileDescriptor。同时,Java规定 阅读全文
posted @ 2026-02-06 18:46 Carey_ccl 阅读(7) 评论(0) 推荐(0)
摘要: ServerSocket.class实现了服务器套接字的功能。服务器套接字会等待通过网络传来的请求。它会根据该请求执行一些操作,然后可能向请求者返回结果。ServerSocket.class的UML关系图如下所示: 一、构造函数 ServerSocket的构造函数有以下几种重载形式: public 阅读全文
posted @ 2026-01-26 11:19 Carey_ccl 阅读(10) 评论(0) 推荐(0)