resource注入(resource注入name后面报红)

http://www.itjxue.com  2023-02-16 21:36  来源:未知  点击次数: 

spring resource对象注入是单例吗

做个测试嘛

背景:

1、定义两个类分别是A和B,同时这两个类都定义为原型(即:scope=“prototype”);

2、A中一个属性定义的为B类型,即:A实例的创建过程中是需要注入一个B实例到A中的;

3、spring使用的3.1.2.RELEASE版本,jdk为1.6.0_10

测试方法及结果:

1、在spring配置文件中配置A对B的引用,可发现在两次调用A的实例对象时,B也被创建了两次?(同预期的结果一样)

2、不使用spring配置文件配置关联关系,而是在类A中使用@Resource的方式注入一个B实例对象,可发现在两次调用A的实例对象时,B只被创建创建了一次?(同预期结果不一致)

3、使用@Autowired替换@Resource重复步骤2,可发现在两次调用A的实例对象时,B也被创建了两次?(同预期的结果一样)

测试总结:

通过上述的测试发现,如果定义的原型A中通过@Resource的方式注入一个定义为原型的B的时候,并没有按照原型的定义完成B的注入,而是使用的单例模式。

请问java高手,spring的注入@Resource是怎么注入的啊,如果根据名称注入好像也不对?

@Resource默认按名称装配,当找不到名称匹配的bean才会按类型装配。

@resource有什么用

@resource注解就是把一个bean注入到当前的类中,可以不必通过配置文件或者导包的方式注入就可以使用该bean,默认是ByName的方式注入,如:

@resource(name=“personDaoBean”)

private personDaoBean personDaobean;

这样就可以直接使用personDaoBean这个Bean,以及其setter和getter方法。

请问java高手,spring的注入@Resource是什么原理啊?

注入都是根据反射原理。

你这个的话,估计是ServletContext这个东西比较特殊吧

(责任编辑:IT教学网)

更多

推荐软件水平考试文章