IOC:Inverse Of Control (控制反转),控制:指对象的创建、销毁等控制权限 , 反转:指将对象的控制权由程序员在类中手动控制“反转”到交给Spring容器控制
作用:IOC是一种思想,是为了设计出更加松耦合的程序,即我们需要一个新的对象,我们不再需要自己手动去创建了,而是从spring的IOC容器里获得,对象的创建权交给spring控制
AOP:Aspect Oriented Programming (面向切面编程),AOP是OOP(面向对象编程)的延续,AOP是对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间得耦合度降低,提高程序的可重用性和开发效率
作用:面向对象就是将事务的特性和行为抽象为一个对象,然后可以统一调用;面向切面编程则是将某一个业务逻辑功能抽取出来,然后动态的把这个功能切入到需要的方法或行为中,需要的才切入,这样有利于减少系统的重复代码,降低模板之间的耦合度
Component :用在类的实例化Bean
Controller :用于web层类的实例化Bean
Service :用于service层类的实例化Bean
Repository :用于dao层类的实例化Bean
Autowired :用于字段上根据类型依赖注入
Qualifier:结合Autowired一起使用,根据名称进行依赖注入
Resource :相当于Autowired + Qualifier ,按照名称进行注入
Value:注入普通属性
Scope :标注Bean的作用范围
PostConstruct :作用于方法上标注该方法是Bean的初始化方法
PreDestory :作用于方法上标注该方法是Bean的销毁方法
Bean的生命周期概括起来有四个阶段:1.实例化 2.属性赋值 3.初始化 4.销毁
1.实例化
实例化一个Bean
2.IOC依赖注入
按照Spring上下文对实例化的Bean进行配置
3.SetBeanName实现
如果这个Bean实现了BeanNameAware接口,就会调用它的实现的setBeanName(string)方法,此处传递的是Spring配置文件中Bean的id值
4.SetBeanFactory实现
如果这个Bean实现了BeanFactoryAware接口,会调用它实现的SetBeanFacory(BeanFactory)方法,传递的spring工厂自身
5.setApplicationContext实现
如果这个Bean实现了ApplicationContextAware接口,会调用它实现的setApplicationContext(ApplicationContext)方法,传递的是Spring的上下文
6.postProcessBeforeInitialization实现-初始化预处理
如果这个Bean实现了BeanPostProcessor接口,将会调用它实现的postProcessBeforeInitialization(Object obj , String s)方法。BeanPostProcessor被用作Bean内容修改,并且由于这个是Bean初始化结束的时候调用这个方法,也可以被用于内存或缓存技术
7.init-method
如果这个bean在Spring配置文件中配置init-method属性,会自动调用其配置的初始化方法
8.postProcessAfterInitialization
如果这个Bean实现了BeanPostProcessor接口,将会调用它的实现的postProcessAfterInitialization(Object obj , String s)方法
9.Destory过期自动清理
当Bean不再需要时,如果这个Bean实现了DisposibleBean这个接口,会调用其实现的 。destory()方法
10.destory-method
如果这个bean在Spring配置文件中配置了destory-method属性,会自动调用其配置的销毁方法