spring--学习摘要

8.1  两种后处理

  8.1.1  Bean 后处理

    Bean后处理会在Bean实例创建后,对Bean进行进一步的增强处理。

    Bean后处理必须实现BeanPostProcesser接口,BeanPostProcesser接口的两个实现方法:

    (1):Object postProcesserBeforeInitializationI(Object bean,String name) throws BeansException,

        第一个参数是要处理的bean,第二个参数是bean的Id   

    (2):Object postProcesserAfterInitializationI(Object bean,String name) throws BeansException,

        第一个参数是要处理的bean,第二个参数是bean的Id

  8.1.2  Bean后处理的用处

    下面是spring常用的两个后处理器:

    (1):BeanNameAutoCreator:根据Bean的name属性,创建Bean实例的代理。

    (2):DefaultAdvisorAutoProxyCreator:根据提供的Advisor,对容器中的所有的Bean实例创建代理。

  8.1.3  容器后处理

    容器后处理必须实现BeanFactoryPostProcessor接口,该接口有一个方法:

    (1):postProcessorBeanFactory()

    spring提供如下几个常用的容器后处理器;

    (1):PropertyPlaceholderconfigurer,属性占位符配置器,---->添加属性文件(.porperties文件)

    (2):PropertyOverrideConfigurer,重写占位符配置器,

    (3):CustomAutowireConfigurer,自定义自动装配的配置器,

    (4):customScopeConfigurer,自定义作用域的配置器,

  8.1.4  属性占位符配置器

  8.1.5  重写占位符配置器

8.2  Spring的“零配置“支持

  8.2.1  搜索Bean类

    Spring提供了几个annotation来标注Spring Bean,

    (1):@component:标注一个普通的Spring Bean,

    (2):@Controller:标注一个控制器组件类,

    (2):@Service:标注一个业务逻辑组件类,

    (3):@Repository:标注一个DAO组件类,

  8.2.2  指定Bean的作用域

    @Scope("Prototype") ,如果不加,默认是singleton。

  8.2.3  使用@Resource配置依赖

    @Resource 默认有一个那么属性,Spring 解释这个属性为需要被注入的Bean实例的id。

  8.2.4  使用@Postconstruct和@PreDestroy 定制生命周期行为

    这两个注解可以修饰任意一个方法。该方法就被赋予了特殊的功能。

    Bean实例化之后执行@PostConstruct修饰的方法。

    Bean在销毁之前执行@PreDestroy修饰的方法。

  8.2.5  Spring 3.0 新增的注解

    @DependsOn和@Lazy

    @DependsOn可以修饰类或者方法,@DependsOn(”bean1“,”bean2“),强制初始化bean1,bean2

    @Lazy(true):Spring初始化时,不会预初始化@Lazy(true)修饰的类

  8.2.6   Spring 4.0 新增的注解

    Sping 提供@Autowired注解指定自动装配,使用该注解修饰的变量,默认是按照变量的类型进行装配,而@Resource是按照Bean的id值来进行装配的,

原文地址:https://www.cnblogs.com/mpxBlog/p/4558950.html