当前位置: 首页 > 知识库问答 >
问题:

ServiceImpl中构造函数的参数0需要一个无法找到的DAO类型的bean

薛朝
2023-03-14

在使用Hibernate作为ORM创建将对象保存在DB中的服务时,我无法启动应用程序。

@Service
public class PropertyServiceImpl implements PropertyService{

private PropertyDAO propertyDAO;

    public PropertyServiceImpl(){
    System.out.println("inside propertyserviceimpl constructor");
}

@Autowired
public PropertyServiceImpl(PropertyDAO propertyDAO){
    this.propertyDAO = propertyDAO;
    System.out.println("inside save");
}

@Transactional
public void save(Property property) {
    propertyDAO.save(property);
}

@Override
public List findAll() {
    // TODO Auto-generated method stub
    return null;
}

}
public interface PropertyDAO {

public void save(Property property);

 }
public class PropertyDAOImpl implements PropertyDAO{

@Autowired
private SessionFactory sessionFactory;

public void save(Property property) {
    Session currentSession = sessionFactory.getCurrentSession();
    currentSession.saveOrUpdate(property);
}

当我启动SpringBoot应用程序时,我会得到以下错误消息。

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in com.flarow.flarowhomes.services.PropertyServiceImpl required a bean of type 'com.flarow.flarowhomes.dao.PropertyDAO' that could not be found.


Action:

Consider defining a bean of type 'com.flarow.flarowhomes.dao.PropertyDAO' in your configuration.

共有1个答案

谢俊英
2023-03-14

将@repository添加到您的DAO实现类中,以便找到它:

@Repository
public class PropertyDAOImpl implements PropertyDAO {

实现传统Java EE模式(如“数据访问对象”)的团队也可以将此构造型应用于DAO类,尽管在这样做之前应该注意理解数据访问对象和DDD风格的存储库之间的区别。

 类似资料:
  • 我正在用spring Boot2.x应用程序处理spring batch,实际上它的现有代码我是从Git签出的。在运行应用程序时,它失败了,因为下面的错误只对我来说,同样的代码是为其他人工作的。 我已经检查了下面 null

  • 我正在创建一个,其中任何客户端都可以提交请求,这些请求可以是、、、。 但是在创建这个应用程序时,我遇到了以下错误: 我的应用程序的结构是: 我尝试用、、注释,但仍然得到相同的错误。 我甚至从这些答案中尝试了解决方案: (1)构造函数的参数0需要一个类型为'java.lang.String'的bean,但找不到该bean 但我仍然无法解决我的问题。

  • 我不确定我的代码有什么问题。我试着学习Spring Boot WebFlux。但我无法运行应用程序,因为我得到以下错误: com.thomsoncodes.todo.controller.ToDoController中构造函数的参数0需要一个类型为“com.thomsoncodes.todo.repository.ToDoRespository”的bean,但找不到该bean 疲惫@Autowir

  • 我想有一个SSO CAS认证,我已经按照Bealdung的教程(https://www.baeldung.com/spring-security-cas-sso第4部分)的说明,但当我作为Spring启动应用程序运行时,我有这个错误 SecurityConfig中构造函数的参数0需要找不到类型为“org.springframework.security.cas.authentication.Cas

  • 在此处输入图像描述 在此处输入图像描述 我仍然不知道该怎么办(我在UserRepository上尝试了Repository注释-错误是一样的)。错误消息:`启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2022-03-14 09:04:54.626错误7236---[main]o.s.b.d.LoggingFailureAnalysisR

  • 我是Spring启动的新手,我无法从我的Spring启动书中获取示例来工作。这是代码 描述: Thomas中构造函数的参数0。ChapterController需要一个 行动: 考虑定义一个“Thomas”类型的bean。在你的配置中。 章节.java 第章存储库.java LoadDatabase.Java 章节控制器.java ThomasSpringApplication.java