如何在spring中指定bean的“id”属性?

8e2ybdfx  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(347)

我有一个mybean类,其中包含字符串“id”。我有很多用id定义的xml bean。我想将mybean java对象的“id”字段填充为xml指定的bean id。如何在没有代码复制的情况下实现这一点?

package just.artmmslv.example.MyBean
public class MyBean {
    private String id;
    private String foo;
//getters, setters, other fields
}

<beans xmlns="foobar+util">
    <util:list value-type="just.artmmslv.example.MyBean">
       <bean id="exampleBean01" class="just.artmmslv.example.MyBean">
           <property name="foo" value="bar"/>
       </bean>
       <!--Other beans-->
    </util:list>
</beans>

那么,如何方便地使examplebean01的字段id等于examplebean01呢?

rpppsulh

rpppsulh1#

在mybean中生成string类型的id,而不是int(我在代码中看到int)
使我的豆工具豆制品
在mybean中实现方法setbeanname:

@Override
public void setBeanName(String s) {
    this.id = s;
}

这就是你所需要的

8zzbczxx

8zzbczxx2#

我认为spring提供了一种通过 BeanNameAware . 通读:https://docs.spring.io/spring/docs/2.5.x/reference/beans.html#beans-工厂感知豆制品
接口将由希望在bean工厂中知道其bean名称的bean实现。注意,通常不建议对象依赖于其bean名称,因为这表示对外部配置的潜在脆弱依赖,以及对springapi的可能不必要的依赖。

相关问题