spring详解:使用注解方式注入属性
2017-08-10 08:23
771 查看
之前介绍过如何在<bean>标签中注入该bean需要使用的属性,那么从spring3.0以后支持注解的方式进行注入,十分便捷,只需要在类中要注入的属性上或者set方法上添加注解即可注入该属性。
约束:加的是context的约束,可以在spring解压的约束文件中去找,该约束如下
开启注解
此种注解会扫描属性和方法上的注解--------后续的spring详解中介绍另一种注解扫描,可以扫描类、属性、方法上的注解
两个注解:
![](https://img-blog.csdn.net/20170810145529681?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFveXVhbm1pbmcwODA2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170810145542032?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFveXVhbm1pbmcwODA2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如果指定了name属性,在spring容器中找到了对应的bean,就能注入,没有找到就会报错
![](https://img-blog.csdn.net/20170810145651007?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFveXVhbm1pbmcwODA2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
@Resource不是Spring的注解,而是javax下的
![](https://img-blog.csdn.net/20170810145808133?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFveXVhbm1pbmcwODA2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170810145820224?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFveXVhbm1pbmcwODA2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如果指定了@Resource的name如果匹配不上就会报错,不会再按类型去匹配
![](https://img-blog.csdn.net/20170810145941994?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFveXVhbm1pbmcwODA2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170810150223874?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFveXVhbm1pbmcwODA2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170810150245967?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFveXVhbm1pbmcwODA2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注解加在set方法上
使用和加在属性上类似
![](https://img-blog.csdn.net/20170810150337049?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFveXVhbm1pbmcwODA2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
另外:@Autowired注解可以声明(required="true")或者声明为false。表明 此属性bean的注入时,bean是否必须存在(被定义)。默认是true。
小结:使用注解的方式进行注入,@Resource会先匹配id与属性名或方法中的参数、方法名,若匹配不到则按照接口与实现类的关系进行注入,若出现多个实现类则注入失败。@Autowired注解的方式是直接按照接口与实现类的关系进行注入,若有多个实现类则配合@Qualifier的value值进行指定注入哪一个实现类的bean。那么在实际开发中,无论使用哪种注解注入,最好是指定注入bean的id,增加程序的可阅读性与可维护性
spring的再次回顾总结,若有详述不当之处,感谢您私信纠正
首先准备:导入aop的包+加约束+声明启动注解
包名:spring-aop-4.2.4.RELEASE.jar 因为有关注解的操作封装在此包中约束:加的是context的约束,可以在spring解压的约束文件中去找,该约束如下
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd" >
开启注解
此种注解会扫描属性和方法上的注解--------后续的spring详解中介绍另一种注解扫描,可以扫描类、属性、方法上的注解
<!-- 开启注解驱动 --> <context:annotation-config/>
两个注解:
@Resources
注解加在属性上
在bean中定义要注入bean的属性,不需要提供set方法如果指定了name属性,在spring容器中找到了对应的bean,就能注入,没有找到就会报错
@Resource不是Spring的注解,而是javax下的
注解加在set方法上
如果指定了@Resource的name如果匹配不上就会报错,不会再按类型去匹配
@Autowired(配合@Qualifier)
注解加在属性上
在bean中定义要注入bean的属性,不需要提供set方法注解加在set方法上
使用和加在属性上类似另外:@Autowired注解可以声明(required="true")或者声明为false。表明 此属性bean的注入时,bean是否必须存在(被定义)。默认是true。
小结:使用注解的方式进行注入,@Resource会先匹配id与属性名或方法中的参数、方法名,若匹配不到则按照接口与实现类的关系进行注入,若出现多个实现类则注入失败。@Autowired注解的方式是直接按照接口与实现类的关系进行注入,若有多个实现类则配合@Qualifier的value值进行指定注入哪一个实现类的bean。那么在实际开发中,无论使用哪种注解注入,最好是指定注入bean的id,增加程序的可阅读性与可维护性
spring的再次回顾总结,若有详述不当之处,感谢您私信纠正
相关文章推荐
- 详解Spring通过@Value注解注入属性的几种方式
- Spring使用注解的方式注入属性时的xml文件配置
- 使用Spring的注解方式注入Struts所管理的action
- Spring通过@Value注解注入属性的几种方式
- spring使用注解方式该如何在框架外获取注入?
- 使用Spring注解注入属性
- 使用Spring注解方式管理事务与传播行为详解
- Spring中使用注解的方式注入方式1
- Spring通过@Value注解注入属性的几种方式
- Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解
- Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解
- 使用Spring注解方式注入properties文件内容,并配合Junit4+Spring做单元测试
- 使用Spring注解来注入属性
- Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解
- Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解
- Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解
- 使用Spring注解来注入属性
- Spring 注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性详解
- BasicDAO与SpringDAO区别,使用Hibernate验证,注解方式实现主键自增,注解方式注入外键(一对多)
- Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解