Spring 属性注入,可以调用另一个Bean的方法吗?

独孤小败 发布于 2013/08/19 15:57
阅读 3K+
收藏 1

如:

<bean id="a" class="">
</bean>

<bean id="b" class="">
    <property name="c" ref="a.c"/>
</bean>
a有个属性c. 并且a中提供了get set 方法。

b 需要注入一个属性c. 可以直接调用a里面的c吗?

加载中
0
震秦
震秦

这个是不可以的. 

你可以尝试使用Spring Configuration注解绕弯实现.

@Configuration
public class AppConfig {
    private @Value("#{jdbcProperties.url}") String jdbcUrl;
    private @Value("#{jdbcProperties.username}") String username;
    private @Value("#{jdbcProperties.password}") String password;

    @Bean
    public FooService fooService() {
        return new FooServiceImpl(fooRepository());
    }

    @Bean
    public Bean fooRepository() {
        return fooService().getBean();
    }
}

独孤小败
独孤小败
哦,原来不可以
0
純白陰影
純白陰影
BeanFactory方式,可能是你想要的
0
純白陰影
純白陰影
純白陰影
呵呵,Spring还是很强大的
独孤小败
独孤小败
谢谢,很有帮助,原来他已经写好FactoryBean了,我只需要调用FactoryBean就行了,以前不了解,这下又学到新东西了。
0
shisx
shisx

可以的,如:

<bean id="a" class="xxx" />

<bean id="b" class="xxx" >

    <property name="obj" value="#{a.getObj()}" />

</bean>

返回顶部
顶部