Spring学习笔记

spring 核心特性:依赖注入和AOP

依赖注入:在创建对象的时候,系统会协调设定这个对象所依赖的第三方组件,对象无需关注和管理第三方组件。

AOP:面向切面编程,为了系统各项互相协调的服务松耦合。例如事务管理,日志管理,安全管理等。

Spring 容器:beanFactory 应用上下文Context。

应用上下文Context:

AnnotationConfigApplicationContext 基于java的配置类中加载Spring应用的上下文

AnnotationConfigWebApplicationContext 基于java的配置类中加载Spring Web应用的上下文

ClassPathXmlApplicationContext 从类路径加载xml的spring上下文

XmlWebApplicationContext 从web应用下加载xml的Spring上下文

装配Bean:

自动化配置:java配置类使用注解@ComponentScan,如果是xml实现上下文,使用标签,先开启自动化扫描包下面的类。相关注解@Component,@Service等注解

基于java的显示配置:主要是使用@Bean注解

基于xml的显示配置:主要是使用

Bean的生命周期:

1. 实例化bean

2. 注入bean相关引用

3. 如果实现了beanNameAware接口,调用setBeanName方法

4. 如果实现了beanFactoryAware接口,调用setBeanFactory方法

5. 如果实现了ApplicationContextAware接口,调用setApplicationContext方法

6. 如果实现了beanPostProcessor接口,调用postProcessorBeforeXXXX方法

7. 如果实现了initializingBean接口或者配置了标签,调用afterPropertieSet方法

8. 如果实现了beanPostProcessor接口,调用postProcessorAfterXXXX方法

9. 这个时候,该bean可以为应用使用了。

10.如果实现了disposableBean接口或者配置了标签,调用destory方法

AOP理解:面向切面编程

通知(advice):前置通知,后置通知,返回通知,异常通知,环绕通知

连接点(Join point):应用中可以 应用通知的时机都叫连接点。

切点(pointcut):部分需要被通知的连接点。

切面(aspect):通知 + 切点 构成切面。

引入(introduction):现有类中添加新的方法和属性,使现有类有新的行为和状态。

织入(waving):把切面应用到目标对象,并创建新的代理对象的过程。织入时机:编译期(aspectJ的编译器),类加载期(AspectJ 5),运行期(Spring AOP)

你可能感兴趣的:(Spring学习笔记)