深入Spring

来源:互联网 发布:uc矩阵子系统划分例题 编辑:程序博客网 时间:2024/05/29 11:33

两种后处理器
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,前缀指定访问策略。

0 0
原创粉丝点击