java – 使用注释和属性文件中定义的类型的Spring autowire?
发布时间:2020-12-15 00:47:13 所属栏目:Java 来源:网络整理
导读:我的目标是一个框架,其中可以通过属性文件轻松更改具体类型的bean.我也更喜欢注释到 XML.理想情况下,我要使用@Resource和SpEL的组合,如下所示: @Resource(type="#{myProperties['enabled.subtype']}")SomeInterface foo; 我已经使用PropertiesFactoryBean或
我的目标是一个框架,其中可以通过属性文件轻松更改具体类型的bean.我也更喜欢注释到
XML.理想情况下,我要使用@Resource和SpEL的组合,如下所示:
@Resource(type="#{myProperties['enabled.subtype']}") SomeInterface foo; 我已经使用PropertiesFactoryBean或< util:properties>加载myProperties.来自包含以下内容的文件: enabled.type = com.mycompany.SomeClassA; // which implements SomeInterface 这不起作用,因为类型的参数必须是文字,即不允许SpEL.这里的最佳做法是什么? 更新:请参阅下面的答案. 解决方法
这正是Spring Java Configuration的用例.
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-java 或者你也可以做一个工厂. 使用:org.springframework.beans.factory.FactoryBean< SomeInterface> 实现FactoryBean的bean的名称将被视为“SomeInterface”,即使它不是. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |