Spring
文章平均质量分 89
spring总结
chy1984
这个作者很懒,什么都没留下…
展开
-
Spring 容器的关闭流程
目录AbstractApplicationContext 中的相关源码关闭容器的2种方式核心方法 doClose()doClose() 流程图 AbstractApplicationContext 中的相关源码关闭容器的2种方式/** * 向jvm注册一个关闭钩子(shutdown hook),在jvm关闭(jvm shutdown)时自动做一些操作 */@Overridepublic void registerShutdownHook() { if (this.shutdown原创 2021-09-30 10:10:30 · 2192 阅读 · 0 评论 -
Spring Bean的那些事儿
目录bean的作用域beanName、aliasbeanName的默认生成策略AnnotationBeanNameGeneratorDefaultBeanNameGenerator创建bean实例的2种方式构造方法方式工厂方法方式静态工厂实例工厂FactoryBean单例bean的线程安全问题标注bean的注解组件扫描依赖注入的几种方式自动装配自动装配的注解问题答疑@Autowired的实现原理自动装配的贪婪原则自动装配常见报错 bean的作用域作用域描述生命周期优点缺点原创 2021-09-29 20:14:54 · 485 阅读 · 0 评论 -
Spring 容器的初始化过程 | 启动流程
目录高级容器的构造方法refresh() 刷新容器方法定义方法实现refresh()方法流程图spring容器的生命周期spring容器的扩展点prepareRefresh() 准备上下文的刷新obtainFreshBeanFactory() 获取最新的内置低级容器obtainFreshBeanFactory() 方法本身refreshBeanFactory() 刷新内置的低级容器prepareBeanFactory() 准备要使用的BeanFactory实例finishBeanFactoryInitial原创 2021-09-29 16:03:15 · 783 阅读 · 0 评论 -
Spring ApplicationContext 体系结构
目录ApplicationContext体系结构图ResourceLoader 体系ResourceLoader 加载指定资源ResourcePatternResolver 加载匹配的所有资源DefaultResourceLoader 默认实现类Aware 体系Aware 标记bean的一个顶级接口BeanNameAware 设置beanNameBeanFactoryAware 设置BeanFactoryBeanClassLoaderAware 设置BeanClassLoader涉及的零散接口Environ原创 2021-09-29 12:48:29 · 636 阅读 · 0 评论 -
Spring 事件驱动,自定义事件、应用监听器
目录概述源码分析ApplicationEvent 应用事件spring中常见的事件类型ApplicationListener 事件监听器ApplicationEventPublisher 事件发布器实际使用自定义事件编写事件监听器发布事件 概述spring引入了事件机制,支持 ApplicationEvent(应用事件),可以对指定事件进行监听处理。 事件驱动的3要素事件:具有事件源、发生时间2个属性事件发布器:负责发布事件事件监听器:监听指定类型的事件,原创 2021-09-20 10:58:01 · 543 阅读 · 0 评论 -
Spring BeanFactory体系
目录BeanFactory体系类图单例体系SingletonBeanRegistry 单例的顶级接口DefaultSingletonBeanRegistry 单例的主要实现类FactoryBean体系FactoryBean 从工厂获取目标实例FactoryBeanRegistrySupport 整合FactoryBean与单例BeanFactory体系BeanFactory 容器的顶级接口ListableBeanFactory 可列单的BeanFactoryHierarchicalBeanFactory 可原创 2021-09-19 23:33:32 · 474 阅读 · 0 评论 -
Spring bean的获取、创建过程,生命周期,循环依赖
实例化bean后,会把当前bean对应的工厂实例预先加载到三级缓存中;注入依赖、创建所需依赖的实例时,可以从三级缓存获取到当前bean对应的工厂实例,通过工厂实例可以获取到之前创建的当前bean的实例(已实例化但尚未填充属性),从而完成依赖本身的属性注入、初始化。工厂实例获取bean实例的getObject()方法其实就是:判断当前bean需要的是依赖本身的实例,还是依赖的代理(依赖的代理也属于依赖的实例),需要依赖本身就直接返回已创建好的依赖实例,需要代理就在已创建的依赖实例的基础上进行包装,返回代理。原创 2021-09-15 19:35:20 · 766 阅读 · 2 评论 -
Spring WebFlux 使用指南
目录响应式编程Spring WebFlux简介WebFlux使用示例 响应式编程响应式编程(reactive programming)是一种异步编程风格,关注数据流、变化传播。在命令式编程中,a=b+c赋值,此后b、c的值的改变不会影响到a;在响应式编程中,可以将数据变化推送给改数据的订阅者,a的值可以随着b、c值的变化自动更新,类似于angular、vue之类的MVVM框架。Reactive 能够构建异步非阻塞的应用程序,低延迟、高吞吐量。 Spring WebFlux简原创 2021-06-29 20:45:43 · 1055 阅读 · 0 评论 -
JDK的 SPI 机制,Spring的 factories 机制
目录jdk的SPI机制spi简介使用示例spring的factories机制factories机制简介使用示例总结 jdk的SPI机制spi简介模块之间一般推荐基于接口编程,不与具体的实现类耦合。抽象接口可能有多种不同的实现方案,eg. 日志可以使用不同的日志框架来实现,json|xml|excel可以使用不同的组件框架来解析,jdbc可以使用mysql、oracle等不同的数据库驱动实现,等等。SPI全称Service Provider Interface,是jdk提供的一套服务发现机原创 2021-06-29 20:36:55 · 1105 阅读 · 1 评论 -
Spring整合AOP
目录Spring AOPAspectJxml配置方式注解配置方式总结 在Spring中使用AOP有2种方式Spring AOP:Spring封装了动态代理实现AOPAspectJ:专业的AOP框架,更强大 Spring AOP依赖spring-aop 目标接口、目标类public interface UserService { void login(); void logout();}@Servicepublic class原创 2020-07-31 22:30:51 · 741 阅读 · 0 评论 -
Spring 事务管理
目录spring的事务管理xml方式注解方式常见问题spring提供的事务隔离级别spring提供的事务传播行为 spring的事务管理spring提供了2种事务管理方式编程式的:借助TransactionTemplate,但需要自己写一些java代码来实现,需要在xml中配置声明式的:实质是通过AOP来实现,使用简单方便,也最常用此处只介绍声明式的,声明式的有2种使用方式:xml、注解不管使用哪种方式,事务都是加在service层的 xml方式<!-- 配原创 2020-07-31 20:23:13 · 384 阅读 · 0 评论 -
Spring整合MyBatis
目录依赖jdbc.propertiesmybatis-config.xmlspring-db.xml常见问题NoSuchBeanDefinitionException: No bean named 'xxx' available” 依赖数据库驱动druid(连接池)mybatismybatis-springspring-tx (如果要用到事务) jdbc.properties#数据库连接信息jdbc.driverClassName=com.mysql.cj.jd原创 2020-07-31 19:48:36 · 361 阅读 · 0 评论 -
Spring整合Log4j
目录log4j简介log4j的日志级别log4j的组成log4j的使用 log4j简介日志的作用可分析程序执行过程,便于调试可将业务数据存储到文件、数据库,便于后期分析 log4j是一个功能强大的日志框架可以将日志信息输出到控制台、文件、GUI 组件、数据库中可以指定日志输出格式 log4j的日志级别一共七种,从高到低依次为OFF 最高日志级别,即关闭日志FATAL 导致应用程序退出的错误ERROR 运行发生错误,但不影响程原创 2020-07-26 22:29:25 · 2184 阅读 · 0 评论 -
Spring 体系结构,核心理念
目录spring概述spring的设计目标spring的设计理念spring的优缺点spring的体系结构spring的核心组件core模块的Resourcebeans模块的BeanDefinitionbeans模块的BeanFactorycontext模块的ApplicationContextspring的2大特性 | 核心IoC 控制反转IoC的优点IoC常见的实现方式IoC、DI的关系spring IoC的实现机制DI的实现原理AOP 面向切面编程aop的优点aop常见的应用场景aop中的主要名词|概原创 2020-05-26 18:48:21 · 2534 阅读 · 0 评论