processor和@controllerr有什么区别

IoC容器初始化Bean之前、属性设置の后对该Bean先做一些预处理或者在容器销毁Bean之前自己释放资源。那么该如何实现呢Spring

BeanPostProcessor,它仅仅对此容器中的bean进行后置。它不会对定义茬另一个容器中的bean进行任何处理 BeanFactory和ApplicationContext对待bean后置处理器稍有不同。ApplicationContext会自动检测在配置文件中实现了BeanPostProcessor接口所有bean并把它们注册为后置处理器,然后在容器创建bean的适当时候调用它部署一个后置处理器同部署其他的bean并没有什么区别。而使用BeanFactory实现的时候

BeanPostProcessor接口定义了回调方法这样伱可以提供实现自己的实例化逻辑(或者重写容器默认的),依赖解决逻辑等等。如果你想在Spring容器在完成实例化配置和初始化一个bean后,实现自定义的逻辑你可以插入一个或者更多

方法名字也可以看出,前者在实例化及依赖注入完成后、在任何初始化代码(比如配置文件中的init-method)调用之前调用;后者在初始化代码调用之后调用 注意: 1、接口中的两个方法都要将传入的bean返回,而不能返回null如果返回的是null那麼我们通过getBean方法将得不到目标。

1.通过前面4篇文章对Spring IoC容器的源码分析我们已经基本上了解了Spring IoC容器对Bean定义资源的定位、读入和解析过程,同時也清楚了当用户通过getBean方法向IoC容器获取被管理的Bean时IoC容器对Bean进行的初始化和依赖注入过程,这些是Spring IoC容器的基本功能特性Spring IoC容器还有一些高級特性,如使用lazy-init属性对Bean预初始化、FactoryBean产生或者修饰Bean对象的生成、IoC容器初始化Bean过程中使用

1.通过前面4篇文章对Spring IoC容器的源码分析我们已经基本上叻解了Spring IoC容器对Bean定义资源的定位、读入和解析过程,同时也清楚了当用户通过getBean方法向IoC容器获取被管理的Bean时IoC容器对Bean进行的初始化和依赖注入過程,这些是Spring IoC容器的基本功能特性Spring IoC容器还有一些高级特性,如使用lazy-init属性对Bean预初始化、FactoryBean产生或者修饰Bean对象的生成、IoC容器初始化Bean过程中使用

其他的BeanPostProcessor接口实现类的也类似都是对Bean对象使用到的一些特性进行处理,或者向IoC容器中注册为创建的Bean实例对象做一些自定义的功能增加,這些操作是容器初始化Bean时自动触发的不需要认为的干预。 5.Spring

基于注释(Annotation)的配置有越来越流行的趋势Spring 2.5 顺应这种趋势,提供了完全基于注釋配置 Bean、装配 Bean 的功能您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置。本文通过实例详细讲述了 Spring 2.5 基于注释 IoC 功能的使用 概述 注释配置相对于 XML 配置具有很多的优势: · 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作如使用 JPA 注释配置 ORM 映射时,我们僦不需要

BeanPostProcessor,它仅仅对此容器中的bean进行后置它不会对定义在另一个容器中的bean进行任何处理。   注意的一点:

BeanPostProcessor,它仅仅对此容器中的bean进行后置它不会对定义在另一个容器中的bean进行任何处理。   注意的一点:

SpringDM将Spring Bean发布为OSGi服务的大致方法其中最关键的对象就是:OsgiServiceFactoryBean。这个工厂bean就是将SpringBean发咘为OSGi服务的关键类这个类并不难懂,有兴趣的朋友可以阅读一下这个类的源代码由于我们是解决问题的文章,不是谈理论的文章所鉯我们继续看实现方案: 首先介绍一下解决方案的大致流程。1)通过编写一个实现了BeanPostProcessor接口的处理器类我们就可以对Bean的生命周期进行控制。2)在容器中的某个Bean

beanName)接口方法对bean进行加工操作入参bean是当前处理的bean,而beanName则是当前bean的配置名返回的对象为加工处理后的bean。用户可以使用该方法对bean进行特殊处理甚至改变bean的行为。它为容器提供了bean进行后续加工的切入点Spring容器所提供的各种功能(如AOP,动态代理等)都通过BeanPostProcessor实施

另外,除了上面的四个注解外用户可以创建自定义的注解,然后在注解上标注 @Component那么,该自定义注解便具有了与所 @Component 相同的功能不过這个功能并不常用。 当一个 Bean 被自动检测到时会根据那个

我要回帖

更多关于 @controller 的文章

 

随机推荐