gpt4 book ai didi

java - 带有注释的Bean定义继承?

转载 作者:IT老高 更新时间:2023-10-28 13:46:06 24 4
gpt4 key购买 nike

是否可以使用基于注解的配置(@Bean 等)实现相同的 bean 继承?

<bean id="inheritedTestBean" abstract="true"
class="org.springframework.beans.TestBean">
<property name="name" value="parent"/>
<property name="age" value="1"/>
</bean>

<bean id="inheritsWithDifferentClass"
class="org.springframework.beans.DerivedTestBean"
parent="inheritedTestBean" init-method="initialize">
<property name="name" value="override"/>
<!-- the age property value of 1 will be inherited from parent -->
</bean>

http://docs.spring.io/spring/docs/4.1.0.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#beans-child-bean-definitions

最佳答案

java config 中没有抽象 bean 的概念,因为 java 语言已经拥有你需要的一切。不要忘记抽象 bean 根本没有暴露在上下文中,它是某种模板。

您可以将上面的代码改写如下:

@Configuration
public class Config {

@Bean
public DerivedTestBean() {
DerivedTestBean bean = new DerivedTestBean();
initTestBean(bean);
bean.setName("override");
return bean;
}

private void initTestBean(TestBean testBean) {
testBean.setName("parent");
testBean.setAge(1);
}
}

如果 initTestBean 应该被共享,你也可以将其公开,如果需要,在其他地方注入(inject) Config

关于java - 带有注释的Bean定义继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23266175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com