名为Spring @Service的匿名bean

时间:2013-02-09 00:47:23

标签: java spring spring-mvc dependency-injection

如何在命名的Spring Service中指定匿名内部bean?

@Service("myNamedService")
public class myNamedServiceClass  {

    private InnerBeanType innerBean;

    @Autowired
    public void setInnerBean(InnerBeanType innerBean) {
        this.innerBean = innerBean;
    }

}

我基本上试图实现以下Spring XML连接的等价物:

<bean name="myNamedService" class="somePackage.myNamedServiceClass">
    <property name="innerBean">
        <bean class="somePackage.InnerBeanType"/>
    </property>
</bean>

1 个答案:

答案 0 :(得分:0)

使用纯注释的等价物是我认为不可能的。您可以使用@Configuration,但目的是不以这种方式将innerBean公开为可见bean:

@Bean
public MyNamedServiceBean myNamedServiceBean(){
  MyNamedServiceClass myNamedServiceBean = new MyNamedServiceClass();
  myNamedServiceBean.setInnerBean(new InnerBeanType());
  return myNamedServiceBean;
}