Spring注解详解
来源:互联网 发布:天刀npc捏脸数据库 编辑:程序博客网 时间:2024/06/08 00:22
@Autowired 注释
Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
Spring 通过一个 BeanPostProcessor 对 @Autowired 进行解析,所以要让@Autowired起作用必须事先在 Spring容器中声明AutowiredAnnotationBeanPostProcessor Bean。
<!-- 该 BeanPostProcessor将自动起作用,对标注 @Autowired的 Bean进行自动注入 -->
<bean class="org.springframework.beans.factory.annotation. AutowiredAnnotationBeanPostProcessor"/>
@Qualifier 注释指定注入 Bean 的名称
@Autowired
public void setOffice(@Qualifier("office")Office office) { this.office = office;}
@Qualifier 只能和@Autowired 结合使用,是对@Autowired 有益的补充。一般来讲,@Qualifier对方法签名中入参进行注释会降低代码的可读性,而对成员变量注释则相对好一些。
@Resource
@Resource 的作用相当于 @Autowired,只不过@Autowired 按byType 自动注入,面@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分别是 name和 type,Spring将@Resource注释的 name属性解析为 Bean的名字,而 type属性则解析为 Bean的类型。所以如果使用 name属性,则使用 byName的自动注入策略,而使用 type属性时则使用 byType自动注入策略。如果既不指定 name也不指定 type属性,这时将通过反射机制使用 byName自动注入策略。
例:@Resource @Resource(name = "office")
一般情况下,我们无需使用类似于 @Resource(type=Car.class) 的注释方式,因为 Bean的类型信息可以通过 Java反射从代码中获取。
要让 JSR-250 的注释生效,除了在Bean 类中标注这些注释外,还需要在Spring 容器中注册一个负责处理这些注释的BeanPostProcessor:
<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
CommonAnnotationBeanPostProcessor 实现了 BeanPostProcessor接口,它负责扫描使用了 JSR-250注释的 Bean,并对它们进行相应的操作。
@PostConstruct
@PreDestroy
JSR-250 为初始化之后/销毁之前方法的指定定义了两个注释类,分别是@PostConstruct 和@PreDestroy,这两个注释只能应用于方法上。标注了@PostConstruct 注释的方法将在类实例化后调用,而标注了@PreDestroy 的方法将在类销毁之前调用。
XML 配置文件中完全移除 Bean定义的配置有:
@Component、
@Component 是一个泛化的概念,仅仅表示一个组件 (Bean),可以作用在任何层次。
@Service、
@Service 通常作用在业务层,但是目前该功能与 @Component相同。
@Constroller
@Constroller 通常作用在控制层,但是目前该功能与 @Component相同。
@Repository
同上
<context:component-scan base-package="com.zap.demo2.controller" />
在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean
- Spring注解详解
- spring的注解详解
- Spring Annotation(注解) 详解
- Spring注解详解
- Spring Annotation(注解) 详解
- spring注解详解
- spring 注解模式 详解
- Spring注解_详解
- Spring注解详解
- Spring注解_详解
- Spring注解详解
- spring注解配置详解
- Spring注解详解
- Spring注解详解
- Spring注解详解
- Spring基于注解详解
- Spring注解详解
- Spring注解详解
- oc基础(部分)
- ActiveMQ的优点
- 关于同一台电脑启2个tomcat问题
- BFS 搜索 Problem 1009 连连看
- python 学习知识点一
- Spring注解详解
- A Complete Tutorial on Tree Based Modeling from Scratch (in R & Python)
- java生成四位随机数,包含数字和字母 区分大小写,特别适合做验证码,android开发
- Android Fragment中onActivityResult()方法获取不到返回数据或者无响应的解决办法
- Android wear开发真机调试报: Android error: Failed to install *.apk on device *: timeout
- MathType在手,公式不求人!
- c++第四次上机作业
- c++实验4-分数的累加
- 2016.4.21日正式开始JAVA学习能坚持下去吗