spring三种常用注入方式的测试与总结
来源:互联网 发布:ubuntu没有vim命令 编辑:程序博客网 时间:2024/06/07 09:41
spring三种常用注入方式
setter方法注入
字段注入(注解实现)
构造器注入
1、setter方法注入
创建一个接口:
public interface Axe { public String chop();}
创建一个实现类:
@Component("SteelAxe")public class SteelAxe implements Axe{ public String chop(){ return "钢斧砍东西很快"; }}
创建需要被注入属性的类:
@Component("person")public class Person implements AllPerson{ private Axe axe; private int personId; @Resource(name="SteelAxe") public void setAxe(Axe axe){ this.axe = axe; } public void setPersonId(int personId) { this.personId = personId; } public void useAxe(){ System.out.println(this.axe.chop()); } public String getPersonId(){ return "personID ="+personId; }}
测试:
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");AllPerson person = (AllPerson) ctx.getBean("person");person.useAxe();
2、字段注入
代码如下:
测试:
3、构造器注入
在person类中去掉注解,然后在xml文件中配置如下:
<bean id="person" class="com.liuyuan.pojo.Person"> <constructor-arg ref="SteelAxe"/> </bean>
最后测试即可
4、@Autowire和@Resource的区别
@Autowire默认按照对象类型来注入,如果想按照名称注入可以添加@Qualifier属性实现。在字段注入中,Autowire如果放在接口的位置上,那么如果此时只有一个实现这个接口的类,那么可以注入。
但当我们再添加一个实现这个接口的类时就会报错了:
如果想要用autowire实现那么就得添加@Qualifier属性:
@Resource默认按照名称来匹配,若找不到合适名称的类才会按照类型来匹配。若注解的类上没有名称,那么就按照类名首字母小写来命名。测试:仍然只让一个类实现接口,然后用@Resource来不加名称实现:
可以看到没加名称后,@Resource也通过类型进行了注入。
阅读全文
0 0
- spring三种常用注入方式的测试与总结
- Spring常用的三种注入方式
- spring的三种注入方式
- spring依赖注入的三种方式
- Spring的三种注入方式
- Spring中注入的三种方式
- Spring中注入的三种方式
- Spring中注入的三种方式
- Spring的三种注入方式
- spring的三种注入方式:
- Spring的注入方式(三种)
- Spring的三种注入方式?
- Spring依赖注入的三种方式
- Spring依赖注入的三种方式
- spring的三种注入方式
- spring的三种注入方式
- Spring依赖注入的三种方式
- Spring依赖注入的三种方式
- 大数据正式14
- vim+Doxygen实现注释自动生成
- “自顶向下,逐步求精”的方法
- c++ primer 8.1.2节练习(关于流的知识)
- 正则表达式基本语法之思维导图
- spring三种常用注入方式的测试与总结
- filter通过装饰者模式防止XSS攻击
- 机器学习小试(6)使用TensorFlow跑通一个通用增量学习流程-设计配置文件
- GROUP BY 与聚合函数 使用注意点
- 垃圾回收机制
- 解决微服务注册到Eureka Server后,服务IP为127.0.0.1
- 仿生人会梦见电子羊吗?——谈谈人工智能与伦理
- 专家名人谈编程的作用
- c++ primer 8.2.1节练习(读文件 写文件 fstream)