您的位置:首页 > 编程语言 > Java开发

深入Spring

2016-05-04 17:06 441 查看
两种后处理器

1,Bean后处理器:

对容器中的Bean进行后处理,对Bean功能进行额外增强。

Bean后处理器是一种特殊的Bean,主要负责对容器中的其他Bean执行后处理,会在Bean实例创建成功之后,对Bean实例进行进一步的增强处理。

Bean后处理器必须实现BeanPostProcessor接口,

在配置文件bean.xml中配置Bean后处理器和配置普通Bean完全一样。

使用ApplicationContext作为容器,无须手动注册BeanPostProcessor。而使用BeanFactory作为Spring容器时,必须手动注册BeanPostProcessor,采用ApplicationContext作为Spring容器,则无须手动注册Bean后处理器。ApplicationContext可自动检测到容器中的Bean后处理器,自动注册。

因此,建议使用ApplicationContext作为容器。

提示:

如果需要对容器中某一批Bean进行通用的增强处理,则可以考虑使用Bean后处理器。

Bean后处理器负责处理容器中的所有Bean实例,而容器后处理器则负责处理容器本身。

2,容器后处理器:

对IoC容器进行后处理,用于增强容器功能。

容器后处理器必须实现BeanFactoryPostProcessor接口。

容器后处理器的作用域范围是容器级,它只是对容器本身进行处理,而不是对容器中的Bean进行处理;如果需要对容器中的Bean实例进行后处理,则应考虑使用Bean后处理器(BeanPostProcessor)。而不是容器后处理器(BeanFactoryPostProcessor)。

1,PropertyPlaceholderConfigurer 属性占位符配置器

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

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

4,CustomScopeConfigurer: 自定义作用域的配置器。

如果需要配置多个容器后处理器,多个容器后处理器(BeanFactoryPostProcessor)可设置order属性来控制容器后处理器的执行次序。设置order属性需实现Ordered接口。

使用Annotation来代替XML配置文件。

Spring通过使用Annotation来标注Bean类。

@Component:标注一个普通的Spring Bean类

@Controller:标注一个控制器组件类

@Service:标注一个业务逻辑组件类

@Repository:标注一个DAO组件类

指定Bean的作用域

eg:
//指定该Bean实例的作用域为prototype
@Scope("prototype")
//指定该类作为Spring Bean,Bean实例名为axe
@Component("axe")
使用@Resource配置依赖
使用@Resource与<property.../>元素的ref属性有相同的效果


在ApplicationContext确定资源访问策略有两个方法:

1,ApplicationContext实现类指定访问策略

ClassPathXmlApplicationContext:对应使用ClassPathResource进行资源访问

FileSystemXmlApplicationContext:对应使用FileSystemResource进行资源访问

XmlWebApplicationContext:对应使用ServletContextResource进行资源访问。

2,前缀指定访问策略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: