我现在想用spring注解方式注入一个类
@autowired
//@Resource
//@Qualifier
//@自定义注解
MyService myService;现在我想根据配置文件,假设配置default动态的(比如自定义注解,Qualifier注解的参数等方式)根据工厂生成我需要的bean,
貌似@bean或者FactoryBean的bean工厂方法都不能获取到这些参数然后动态的生成不同属性值的bean啊,有什么办法解决这个问题吗
谢谢各位~Spring注解
@autowired
//@Resource
//@Qualifier
//@自定义注解
MyService myService;现在我想根据配置文件,假设配置default动态的(比如自定义注解,Qualifier注解的参数等方式)根据工厂生成我需要的bean,
貌似@bean或者FactoryBean的bean工厂方法都不能获取到这些参数然后动态的生成不同属性值的bean啊,有什么办法解决这个问题吗
谢谢各位~Spring注解
解决方案 »
- 我用jquery ajax的.post方法,在服务器上拉回来的数据可以对其进行再一次的操作吗?
- Login is not mapped [from Login where name=? and password=?]
- 急!!!
- 优化下面的JAVA代码
- struts 重复提交问题
- 怎样把从数据库的取得的数据填充到已经制好格式的DOC文档里的数据域里
- QQ群组-Java与开源软件组织开始招高手入住了!!!!!!
- 请教struts问题。在线!!!
- 已经连续送出250分求解决resin环境下载word文件后内容为乱码的问题!!居然没人能解决!看来csdn没人啊!!!再送50分!!
- 想做一个xml的项目练练手,不知作什么好,请较各位大侠
- paypal接口java集成,求大神帮忙!
- struts2+jfreechart整合时报错,无法显示图片
你试试这Resource吧@Resource(name="beanAnn")
我仔细在说下我的需求吧
我需要利用spring对一个实例对象进行注解,比如对于
private MyService myService;
正常情况下使用spring注解注入可以使用@autowired
private MyService myService;
但是我是希望这个注入是多个private MyService myService1;
private MyService myService2;只不过这个多个MyService可能是属性值不一样,当然可以的做法是使用xml配置多个MyService的bean,然后配置不同属性值,或者MyService是接口,由不同的实现注入,但是也是需要写不同的实现类,
我是希望能够根据注入时候的注解,这种注解可以是@Resource
@Qualifier
@自定义注解等各种方式,假设@MyAnnotation(config="default"),能够使用一个spring工厂根据注解的配置生成不同的属性值的对象,但是我上面也提到了,@bean或者FactoryBean的bean工厂方法都不能获取到这些参数然后动态的生成不同属性值的bean啊。也就是我希望能够根据一些参数或者其他方式来动态的注入我所需要的同一个类不同属性值的对象,即类似于@Qualifier("defualt")
private MyService myService1;
@Qualifier("alternative")
private MyService myService2;我能够通过代码控制注入的对象的属性值~诸如@bean或者FactoryBean
他们使用的时候是FactoryBean impl..
public Object getObject() throws Exception {
// 这边并不能获取我的注解参数args然后动态的生成我需要的MyService
// 即不能return new MyService(args);
return new MyService();
}
假设你可以通过在注入时指定注入的bean的构造参数,那么spring context中势必存在多个同一类型的未指定名称的注入bean,那么spring该怎么存储他们呢?要知道每一个bean都必须对应一个唯一的名称的,而你并未指定
其次,在注入时,注入bean是已经实例化好的,不会临时看到要注入才会去生成这个bean
return new MyService(Math.random());
}只不过我是在注解注入的时候需要获取注解的参数来动态的实例化出我的bean。
至于你说的id,在xml中是指定的id,在注解的方式中完全可以是用类名作为默认id,具体我没仔细研究过,否则注解注入过程中怎么能根据类型动态的注入?当然实际上也完全可以不需要id,只需要类型匹配就行了,比如加载类的class信息,然后去根据此找匹配的注入,我想spring底层应该就类似实现的。
在一个接口多重实现类的情况下本身spring就提供了如@Qualifier来确定注入具体的实现类,只不过这个是spring自己去实现了,而他这个实现类实例是已经定义好的几个具体实现类实例,我只是希望能够动态生成不同的实现类实例,其实算是同一个实现类,只不过该实现类初始化值不一样