本文章算是给尚硅谷-SpringBoot学习先打基础了,后面看SpringBootApplication源码的时候能更清晰
视频地址:https://www.bilibili.com/video/BV1gW411W7wy?p=61&vd_source=510ec700814c4e5dc4c4fda8f06c10e8
针对单实例,在调用容器时才加载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把各个组件加载到本类中来
就是初始化Bean后,想执行自定义关于这个Bean的初始化和销毁方法怎么弄
@Bean(initMethod = "Bean类中的初始化方法", destroyMethod = "Bean类中的销毁方法")
@PostConstruct:在bean初始化与构造器属性
@PreDestory:容器销毁Bean前的清理工作
后置处理器:BeanPostProcessor
@EnableAspectJAutoProxy:雷神说必须要开启,但是实际用AOP切面的时候不开启也能使用,而且我开启这个注解主要是在事务传播行为的时候用到,有待商榷吧。
@EnableTransactionManagement:事务管理器,我也没用到也能使用事务管理。
就是把bean全加载进来,然后使用饿汉或者懒汉加载(默认饿汉,可由用户自定义)