为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

撒科打诨 2023-07-19 15:53:56
在创建使用 Hibernate 作为 ORM 将对象保存在数据库中的服务时,我无法启动该应用程序。我正在使用 Spring Boot 和 Hibernate。我的服务实现:@Servicepublic class PropertyServiceImpl implements PropertyService{private PropertyDAO propertyDAO;    public PropertyServiceImpl(){    System.out.println("inside propertyserviceimpl constructor");}@Autowiredpublic PropertyServiceImpl(PropertyDAO propertyDAO){    this.propertyDAO = propertyDAO;    System.out.println("inside save");}@Transactionalpublic void save(Property property) {    propertyDAO.save(property);}@Overridepublic List findAll() {    // TODO Auto-generated method stub    return null;}}PropertyDAO.javapublic interface PropertyDAO {public void save(Property property); }PropertyDAOImpl 实现 DAOpublic class PropertyDAOImpl implements PropertyDAO{@Autowiredprivate 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.
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

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

@Repository
public class PropertyDAOImpl implements PropertyDAO {

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


查看完整回答
反对 回复 2023-07-19
?
慕少森

TA贡献2019条经验 获得超9个赞

按如下方式更改您的 PropertyDAO:

public interface PropertyDAO extends JpaRepository<Property, Integer>{ }


查看完整回答
反对 回复 2023-07-19
  • 2 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信