gpt4 book ai didi

java - Spring:将 DAO Autowiring 到实用程序类中不起作用

转载 作者:行者123 更新时间:2023-12-01 13:08:09 26 4
gpt4 key购买 nike

我有一个注释驱动的 spring mvc 项目,该项目是在 JBoss web mvc 示例之后模板化的。 (Spring、Hibernate、JPA 2.0)

我有一个实用程序包,我想在其中放置可重用的类以实现明显的实用程序功能。具体来说,我有一个 LogonUtilities 类,我想在其中查询数据库以获取信息。

我在那里 Autowiring 我的 DAO,但是当我调试时,DAO 始终为空,并因该异常而失败。

我已经阅读并尝试了很多东西 - 我知道我可能已经找到了解决方案 - 但错过了一些东西并继续尝试其他东西。我可能没有在谷歌上搜索正确的术语,因为注释对我来说是新的。 (我已经使用 spring 和 hibernate 多年 - 但使用的是 xml)

我已将其添加到我的 applicationContext.xml

<context:component-scan base-package="util"/>

我认为这就是我需要做的。

这是我目前在 LogonUtility 类中拥有的内容 - 但它不起作用,keywordDao 始终为 null。我想如果我将 DAO 连接到 applicationContext 中的 LogonUtility bean(旧方法),我可能可以让它工作,但我认为有更好的方法可以使用注释来实现它。

@Service    
public class LogonUtilities {

@Autowired private KeywordDao keywordDao;

我的应用程序不是全新的,我现在可能有十个工作 Controller 和十几个工作 DAO,包括一个关键字 Controller 和已经执行 CRUD 操作的 DAO,所以我不认为我的设置与这些东西有关是不正确的。我只是想重用一些从数据库中提取的代码。

提前致谢。

*在我的代码中它实际上被称为“TrainingKeyword”而不是“Keyword”这是 nullPointer 错误,因为 DAO 为 null

10:52:07,673 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /Training/Home: java.lang.NullPointerException

at util.LogonUtilities.trainingOffices(LogonUtilities.java:59) [classes:]
at filter.LogonFilter.doFilter(LogonFilter.java:100) [classes:]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]

这是发生错误的代码

//Set TrainingOffices
List<TrainingKeyword> kList1 = keywordDao.getAllTrainingKeywordsByName("Level 200 Training Offices");

最佳答案

我通过听取您的想法并在这个问题的帮助下解决了我的问题。 JPA is not Autowiring

基本上我已经尝试过所有有效的方法 - 但从未全部尝试过。我不断地对我的代码进行编辑,试图让它工作,但总是有一些东西丢失或有问题。对于有类似问题的任何人,这里是步骤

在我的 LogonFilter 中添加

 @Autowired private LogonUtilities lu

在我的 LogonUtilites 类中添加了

@Autowired private TrainingKeywordDao keywordDao;

无需将 LogonUtility bean 添加到我的 applicationContext - 我将其取出,它仍然有效。

感谢所有提供帮助的人 - 你们的想法不断让我重新思考我正在做的事情。

关于java - Spring:将 DAO Autowiring 到实用程序类中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23114050/

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