随笔分类 - Spring
摘要:Springboot 使用外部 Tomcat 1.修改 pom.xml,改为打 war 包 2.将 Springboot 内置 tomcat 作用域改为 3.重写 SpringBootServletInitializer 4.maven 打包出 war 包后,放到 tomcat 的 webapps
阅读全文
摘要:refresh() 1. prepareRefresh() 刷新预处理 1. 设置容器状态为 active 2. 初始化属性配置,空方法,可以重写这个方法来自定义属性 3. 属性配置校验,也是空的 4. 缓存容器中早期事件监听器 2. obtainFreshBeanFactory() 获取 Bean
阅读全文
摘要:Spring 自定义了继承 JDK 事件监听器的接口 ,用来监听 Spring 应用程序中的事件;自定义了继承 JDK 事件对象的抽象类 ,用来表示 Spring 应用程序中的事件类型。容器启动刷新过程中,可以定义事件监听器,来监听应用程序上下文事件 ,它有四个具体的实现类: ,分别表示容器启动/刷
阅读全文
摘要:启动事务 @EnableTransactionManagement 注解来启用事务能力。 参数解释 proxyTargetClass:默认为false,表示使用 JDK 的代理模式,true表示用 CGLib 的代理模式,仅在 mode 是 PROXY 时才有效。 mode:默认为PROXY,表示使
阅读全文
摘要:结合 "Spring 后置处理器源码" 和 "Spring Aware源码" ,再来看下 Spring AOP 的源码。 启动 AOP 使用 @EnableAspectJAutoProxy 这个注解来启用 AOP 的能力了。它使用 @Import 导入类 AspectJAutoProxyRegist
阅读全文
摘要:快速写一个 Spring AOP 实现类 1. 定义业务类,使用 @Service 注解加入 Spring 容器。 2. 定义切面类,使用 @Component 注解加入 Spring 容器,标注 @Aspect 表示此类为切面类,并给方法标注通知类型。 通知类型 前置通知 后置通知 返回通知 异常
阅读全文
摘要:通过实现 Aware 接口,可以在 Spring 启动时,调用接口定义的方法,将 Spring 底层的一些组件注入到自定义的 Bean 中。 下面列出了几个 Spring 在 Aware 接口基础上,进行扩展的接口,分别会在创建 Bean 时直接执行,或者通过 BeanPostProcessor 间
阅读全文
摘要:在《 "几种自定义Spring生命周期的初始化和销毁方法" 》最后一段描述了启动 Spring 容器过程中,初始化和销毁方法的执行时机,那么在 Spring 中是如何做到的呢? 注册主配置类 Spring 使用 指定主配置类,将其注册到 BeanFactory。除了主配置类,还会将一些基础的后置处理
阅读全文
摘要:Bean 的生命周期指的是 Bean 的创建、初始化、销毁的过程。Spring 提供了一些方法,可以让开发自定义实现在生命周期过程中执行一些额外操作。 1、在注解 @Bean 中指定初始化和销毁时执行的方法名。 2、实现初始化和销毁接口 InitializingBean、DisposableBean
阅读全文
摘要:@Autowired 注解可以加在构造器、方法、参数、属性、注解类型上。如果有参构造器或 @Bean 注解方法只有一个入参,则可以省略 @Autowired 不写。 1、属性 2、构造器 3、方法 @Autowired 自动查找 Bean 的顺序 1. 根据 @Qualifier 指定的 Bean
阅读全文
摘要:通过在类上加注解 @ComponentScan 来扫描 Spring 的组件类。 @ComponentScan 的可选参数 basePackages:指定需要扫描的根包目录,其子目录也会被扫描,默认路径为 @ComponentScan 注解类目录,及其子目录 value:basePackages 的
阅读全文
摘要:指定路径 使用 @PropertySource 指定配置文件路径,支持 properties 和 XML 的配置文件,但不支持 yml。 属性赋值 可以用注解 @Value 对属性直接赋值、${}获取配置文件的值、SPEL表达式 {}。 直接赋值: 读取配置文件: 指定默认值: 表示如果没有 的配置
阅读全文
摘要:组件声明 在类上声明 @Component、@Configuration、@RestController、@Service、@Repository 等注解,表示这个类需要被注入IoC容器。 1、@Configuration 和 @Bean @Configuration 常用来和 @Bean 配合使用
阅读全文
摘要:全局事务和本地事务 1、全局事务 基本的支持分布式事务; 在业内,主要用来解决分布式事务的方案是使用柔性事务。柔性事务包括几种类型:两阶段型、补偿型、异步确保型和最大努力通知型。 事务管理器控制着全局事务,管理事务生命周期,并协调资源。资源管理器负责控制和管理实际资源。在全局事务中,为了保证所有的操
阅读全文
摘要:因为 MyBatis 用 SqlSessionFactory 来创建 SqlSession ,SqlSessionFactoryBuilder 创建 SqlSessionFactory ,而在 Mybatis-Spring 中提供了继承自 Spring 接口 FactoryBean 的 SqlSes
阅读全文
摘要:基于Spring Framework 版本:5.0.2.RELEASE IoC 概念:传统Java开发中,程序通过new主动创建对象实例,而Spring有专门的IoC容器来创建对象,具体来说就是在Spring容器中注册过的类,其创建、销毁等过程交由Spring来统一负责管理,所以这一过程也叫依赖注入
阅读全文