gpt4 book ai didi

java - 从主类访问时服务变量为空

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:35 24 4
gpt4 key购买 nike

我有一个名为 App.java 的 swing 类,其中有:

private EmployeeService employeeService;

public void setEmployeeService(EmployeeService employeeService) {
this.employeeService = employeeService;
}

在我的 applicationContext.xml 中,我有这个:

<bean id="employeeDao" class="com.myapp.dao.EmployeeDaoImpl">
<property name="dataSource" ref="dataSource" />
</bean>

<bean id="employeeService" class="com.myapp.service.EmployeeServiceImpl">
<property name="employeeDao" ref="employeeDao" />
</bean>

<bean id="app" class="com.myapp.swing.App">
<property name="employeeService" ref="employeeService" />
</bean>

当我运行 App.java 时,收到员工服务为空的错误。为什么会这样?如果我直接从类中分配employeeService bean:

ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("/spring/applicationContext.xml");
EmployeeService employeeService = (EmployeeService) context.getBean("employeeService");
employeeService.validateEmployeeNo(1234);
context.close();

...

我能够成功运行它。当我从applicationContext.xml注入(inject)employeeService时,Spring不是在App.java中连接employeeService吗?

最佳答案

除非您的 App 类是由 Spring 容器创建的,否则您尝试访问的任何服务都将返回 null。您如何初始化您的 App 类?

App myApp = new App();

App myApp = (App) context.getBean("app");

关于java - 从主类访问时服务变量为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29664805/

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