gpt4 book ai didi

java - 如何从 Spring 应用程序上下文 XML 访问数据库?

转载 作者:行者123 更新时间:2023-12-01 15:49:31 25 4
gpt4 key购买 nike

我有一些bean需要使用另一个必须从数据库加载的bean。我使用 Hibernate 并有一个用 @Repository 注释的 DAO。

我设法将 bean 定义为单例,并使用 DAO 作为 XML 中的工厂,但由于存储库在 XML 中并不明确,所以我觉得很脏。

是否有 更优雅 更容易理解的解决方案?

以下是 application-context-beans.xml 的摘录:

<bean id="myBean"
class="myBeanClass">
<property name="defaultMyValue">
<bean factory-bean="myValueDAO" factory-method="getEntity">
<constructor-arg value="0" />
</bean>
</property>
</bean>

myValueDAO 不是在 XML 上定义的,而是用 @Repository 注释的类

这段代码可以工作,但我不喜欢它,Spring IDE Eclipse 功能也不喜欢它;-)

最佳答案

这是一种审美判断,即您想在 Java 中做多少事情,在 XML 中做多少事情,并考虑诸如 future 谁将维护它以及他们可能会做出什么样的更改等因素。

对于我来说,我不喜欢将普通的旧域对象直接放入上下文配置中,除非它是类似 util:properties 的东西,其中包含我的其他 bean 需要初始化自身的数据。如果使用您现有的解决方案对您来说太像深奥的黑魔法,那么请编写您自己的 FactoryBean,它采用 DAO 实例(如果您愿意,甚至可以 Autowiring )并返回一个实例myBeanClass

关于java - 如何从 Spring 应用程序上下文 XML 访问数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6398101/

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