spring注释一 : RequiredAnnotationBeanPostProcessor
2016-07-26 16:27
316 查看
使用案例
如果一个bean某些字段必须含有,则可以使用@Required注释<bean id="" class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"> </bean>
bean class定义
package com.javarticles.spring; import org.springframework.beans.factory.annotation.Required; public class Employee { private String name; private Company company; private int age; public String getName() { return name; } @Required public void setName(String name) { this.name = name; } public Company getCompany() { return company; } @Required public void setCompany(Company company) { this.company = company; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String toString() { return "Employee(" + name + "), " + company; } }
如果一个bean不希望进行required检查
<bean id="dummy" class="com.javarticles.spring.Employee"> <meta key="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor.skipRequiredCheck" value="true" /> </bean>
原理
继承InstantiationAwareBeanPostProcessorAdapter,在postProcessPropertyValues()方法中进行校验由于实现PriorityOrdered接口, Ordered.LOWEST_PRECEDENCE - 1,执行优先级比@Autowired、@Resource都要低
BeanPostProcessor具体实现类 | 处理注释 | 优先级(数字越低优先级越高) |
---|---|---|
AutowiredAnnotationBeanPostProcessor | @Autowoired | Integer.MAX -2 |
CommonAnnotationBeanPostProcessor | @Resource | Integer.MAX -3 |
RequiredAnnotationBeanPostProcessor | @Autowoired | Integer.MAX -1 |
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 模拟Spring的简单实现
- Spring整合WebSocket应用示例(上)
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- 监听器获取Spring配置文件的方法
- Java利用Sping框架编写RPC远程过程调用服务的教程
- springmvc 发送ajax出现中文乱码的解决方法汇总
- Spring MVC中Ajax实现二级联动的简单实例
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- 详解Java的MyBatis框架和Spring框架的整合运用
- struts2 spring整合fieldError问题