Offer

尚硅谷-Spring-注解驱动篇

本文章算是给尚硅谷-SpringBoot学习先打基础了,后面看SpringBootApplication源码的时候能更清晰

视频地址:https://www.bilibili.com/video/BV1gW411W7wy?p=61&vd_source=510ec700814c4e5dc4c4fda8f06c10e8

csdn csdn csdn csdn csdn


🔥1. 容器篇

1.1. IOC-基本注解

1.1.1 @Lazy

针对单实例,在调用容器时才加载bean

1.1.2 @Conditional
  1. 自定义类实现Condition接口,然后配置条件
  2. @Conditional可以引用上面自定义类,然后加载类或者方法上,只有满足条件才能注入@Bean
1.1.3 @Import
1.1.3.1 基本注入组件方法

​ 给容器注册组件方法:

  1. 包扫描+组件扫描:修饰类就能创建一个对象
  2. @Bean注入 (配合@Configuration):本质就是修饰方法,然后创建一个对象
  3. @Import快速导入(配合@Configuration):注入进去的类型,也就是类的路径
  4. 使用@EnableConfigurationProperties
  5. 使用FactoryBean
    1. 就是实现FactoryBean接口,然后利用@Bean注册这个工厂bean,这样就能实现行的Bean注入

​ 注入属性:

	1. @ConfigurationProperties + @Component
	1. @Value

​ 装配组件(上面注册主键后就能使用):

		1. @Autowired:可以修饰方法和构造器,就是IOC容器中获取到这个相应名字的对象(就等同于之前set函数赋值对象的操作)
		1. @Resource
		1. @Inject(和@Autowired等价):需要导入包,java规范
   1.本质就是单例Controller组件,然后内部使用@Autowired注入IOC容器中各个Bean,有冲突就使用@Qualifier
   2.各个底层又是使用new 各个对象,保证了每个线程方法访问不会冲突。
   @Configuration组件上可以使用组件扫描@ComponentScan把各个组件加载到本类中来
1.1.3.2 @ImportSelector, @ImportDefinBEAN(略)
1.1.4 Bean--执行初始化/销毁方法

​ 就是初始化Bean后,想执行自定义关于这个Bean的初始化和销毁方法怎么弄

1.1.4.1 @Bean注解
@Bean(initMethod = "Bean类中的初始化方法", destroyMethod = "Bean类中的销毁方法")
1.1.4.2 JSR250--@PostConstruct/@PreDestory

​ @PostConstruct:在bean初始化与构造器属性

​ @PreDestory:容器销毁Bean前的清理工作

1.1.4.3 BeanPostProcessor

​ 后置处理器:BeanPostProcessor


1.2 AOP--@EnableAspectJAutoProxy(略)

​ @EnableAspectJAutoProxy:雷神说必须要开启,但是实际用AOP切面的时候不开启也能使用,而且我开启这个注解主要是在事务传播行为的时候用到,有待商榷吧。

1.3 声明式事务--@EnableTransactionManagement(略)

​ @EnableTransactionManagement:事务管理器,我也没用到也能使用事务管理。

🔥2. 扩展原理篇

2.1.Spring源码(略)

​ 就是把bean全加载进来,然后使用饿汉或者懒汉加载(默认饿汉,可由用户自定义)

🔥3. Web篇

3.1.Servlet3.0(略)

3.2.SpringMVC异步处理(略)


posted @ 2022-07-31 12:19  Empirefree  阅读(90)  评论(0编辑  收藏  举报