gpt4 book ai didi

java - Spring中基于类型的自动对象初始化

转载 作者:行者123 更新时间:2023-11-29 09:05:31 25 4
gpt4 key购买 nike

我有一个需要迭代的类类型列表,对于该列表中的每个类型,Spring 需要自动找到要初始化的正确类型的对象。

例如:我有一个 ClassA 和 ClassB。例如,当有一个类型 User 时,需要使用某些参数(在 context.xml 中定义)来初始化 ClassA。例如,当有一种 Message 类型时,它还应该从类型 ClassA 中创建一个对象,但具有不同的参数,这些参数再次在 context.xml 中定义。

我该怎么做呢?我查看了 spring 的控制反转功能,但似乎无法找到适合我特定目的的正确实现

一个想法是我为每种可能的类型制作一个 bean,例如

<bean id="classAconfig" class="ClassA">
<property name="type" value="User.class"/>
<property name="fields">
<list>
<value>id</value><value>email</value>
</list>
</property>
<property name="map">
<map>
<entry key="id" value="1"/><entry key="login" value="1"/><entry key="email" value="1"/>
</map>
</property>
</bean>

亲切的问候,

梅林

最佳答案

嗯,我找到了。只需要像上面描述的那样在上下文 xml 中定义一些 bean。但是在 ClassA 中,我扩展了 InitializingBean 并覆盖了 afterPropertiesSet 方法。在那个方法中,我在我的服务中注册了 ClassA。

public class ClassA extends InitializingBean
@Override
public void afterPropertiesSet() throws Exception {
service.registerClass(this);
}

然后在我的服务中:

public void registerClass(@Nonnull Class clazz) {
classes.put(clazz.getType(), clazz);
}

关于java - Spring中基于类型的自动对象初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15241800/

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