gpt4 book ai didi

java - 我应该拆分 Spring 上下文文件吗

转载 作者:行者123 更新时间:2023-12-01 13:45:14 24 4
gpt4 key购买 nike

我正在尝试学习Spring框架。我正在制作一个简单的测试应用程序。我有一个调用服务的客户端,该服务调用 DAO。
客户端像这样调用服务:
XML

<bean id="myService" class="test.package.service.MyServiceImpl">
<property name="indexFilePath" value="${indexFilePath}" />
<property name="pdfFilePath" value="${pdfFilePath}" />
</bean>

Java

public static void main(String[] args)
{
ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
MyService myService = (MyService)context.getBean("myService");
myService.doStuff();
context.close();
}

我希望服务调用 DAO:
XML

<bean id="trackingDAO" class="test.package.dataaccess.TrackingDAOImpl">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${trackingDb.driver}" />
<property name="url" value="${trackingDb.url}" />
<property name="username" value="${trackingDb.username}" />
<property name="password" value="${trackingDb.password}" />
</bean>

我的问题是我将这两个 XML 片段放在同一个文件中。所以我不知道如何访问DAO bean。我不相信当它仍然在“main”中打开时我可以打开相同的上下文。我应该创建第二个上下文文件吗?如果是这样,当我应该创建新的上下文文件时,食物的经验法则是什么?我不喜欢拥有很多这样的想法。或者也许 DAO 应该是服务的属性(property)?

最佳答案

<bean id="myService" class="test.package.service.MyServiceImpl">
<property name="indexFilePath" value="${indexFilePath}" />
<property name="pdfFilePath" value="${pdfFilePath}" />
<property name="dao" ref="trackingDAO" />
</bean>

在您的服务中,添加 dao 属性,就像您提到的那样。

public class MyServiceImpl {
....
TrackingDAO dao; //assuming thats the interface , or use Impl.
....
}

关于java - 我应该拆分 Spring 上下文文件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20412724/

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