宁可枝头抱香死,何曾吹落北风中。这篇文章主要讲述考虑在配置中定义类型为“com.gisapp.gisapp.dao.IUserDAO”的bean相关的知识,希望能为你提供帮助。
当我启动spring-boot应用程序时,我收到以下消息:
应用程序未能启动我在其他与此问题相关的帖子中读到的是我必须配置注释@ComponentScan,但它不起作用
描述:
【考虑在配置中定义类型为“com.gisapp.gisapp.dao.IUserDAO”的bean】com.gisapp.services.impl.UserService中的字段userDAO需要一个无法找到的类型为“com.gisapp.gisapp.dao.IUserDAO”的bean。
注入点具有以下注释: -@ org.springframework.beans.factory.annotation.Autowired(required = true)
行动:
考虑在配置中定义类型为“com.gisapp.gisapp.dao.IUserDAO”的bean。
主类:
package com.gisapp.gisapp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan("com.gisapp")
public class GisappApplication {public static void main(String[] args) {
SpringApplication.run(GisappApplication.class, args);
}}
服务类
@Service
public class UserService implements IUserService {@Autowired
IUserDAO userDAO;
@Override
@Transactional(readOnly=true)
publicObject login() {return userDAO.login();
}}
-UserDAO
package com.gisapp.gisapp.dao.impl;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import com.gisapp.gisapp.dao.IUserDAO;
import com.gisapp.models.entity.User;
public class UserDAO implements IUserDAO{@Override
public Object login() {StringBuilder query = new StringBuilder();
query.append("SELECT * FROM User");
EntityManager em = null;
Query q = em.createNativeQuery(query.toString());
List<
User>
result=q.getResultList();
return result;
}}
IUserDAO应该被识别为bean并且app应该运行
答案1)添加一个
@Repository
注释,以便将DAO作为bean加载到spring上下文中:@Repository
public class UserDAO implements IUserDAO{
2)只是侧面..你应该最有可能注入
EntityManager
:@PersistenceContext
private EntityManager em;
推荐阅读
- 如何将IStringLocalizer注入IApplicationModelConvention()
- 如何在Spring Boot Application中使用JPA删除/ getList
- 带有@RequestParam和@RequestBody的Spring @GetMapping因HttpMessageNotReadableException而失败
- Xcode 8 App安装失败,出现未知错误
- Ad Hoc发布Xcode 10,App无法正常工作
- 是否有Eclipse的IntelliJ Keymapping插件()
- Android导出(如何创建.keystore文件())
- 在Ruby on Rails中集成Stripe和PayPal付款方式
- 函数式编程简介(JavaScript范例)