通过注释

时间:2016-02-04 11:01:15

标签: java spring

如何使用注释在Spring中提供bean继承?在XML配置中,我使用了<parent="parentBean">标记。有没有注释?

例如,我有两个bean(cacheEventLogger扩展fileEventLogger):

 <bean id="fileEventLogger" class="com.myuspring.core.loggers.FileEventLogger" init-method="init">
    <constructor-arg value="d:/1.txt"/>
</bean>


<bean id="cacheEventLogger" class="com.myspring.core.loggers.CacheFileEventLogger" init-method="init"
      parent="fileEventLogger" >
    <constructor-arg value="15"/>
    <property name="cacheSize" value="2"/>

我创建了AppConfig类:

@Configuration

public class AppConfig {

@Bean(initMethod = "init")
public FileEventLogger fileEventLogger() {
    return new FileEventLogger("d:/1.txt");
}

@Bean(initMethod = "init")
public CacheFileEventLogger cacheFileEventLogger() {
   ???

}

}

我应该为cacheEventLogger设置什么注释来扩展fileEventLogger?

2 个答案:

答案 0 :(得分:1)

Spring特定的注释没有这样的parent属性,因为Java语言提供了创建模板所需的一切(即继承,抽象)并将其用作某些Spring-beans的父

答案 1 :(得分:1)

Spring注释没有spring XML parent标记/属性的等价物。 JIRA中指定了一些解决方法,其中包含一些自定义编码。

请参阅相关的春季JIRA https://jira.spring.io/browse/SPR-5580以及对此JIRA Bean definition inheritance with annotations?

的stackoverflow答案的引用

我认为这就是你要找的东西。