新手请教:spring boot 中@Autowired注解无法自动注入的错误。

huyuleizj 2016-07-01 11:26:05
学习spring boot,遇到@Autowired总是报错,自己折腾了半天也没搞定,请大家帮忙看看:
这是controller和dao的调用和目录结构


这是一个简单的dao,参照书上写的


结果启动时报错BeanCreationException:

org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'userController':
Injection of autowired dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.caizhaotu.dao.user.UserRepository com.caizhaotu.controller.user.UserController.userRepository;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Invocation of init method failed; nested exception is java.util.NoSuchElementException

好像是spring注入bean的时候错误,但不知道这个springboot改怎么配置,因为我看得书上都说是自动配置的啊?
...全文
44160 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
david_van 2019-09-03
  • 打赏
  • 举报
回复
List<User> findByUserName(String userName); jpa需要一定的规范, Error creating bean with name 'userRepository': Invocation of init method failed; nested exception is java.util.NoSuchElementException 异常信息里面说是没有这样的元素异常,你这边查询需要应该userName参数
亦寒2017 2019-01-10
  • 打赏
  • 举报
回复
这个方法更简单,只需要加个static,而且说明本质问题了。https://blog.csdn.net/m0_37202351/article/details/86255132
DariusEle 2018-11-13
  • 打赏
  • 举报
回复
(required=false)
awastocean 2018-01-29
  • 打赏
  • 举报
回复
applicationw位置正确,然后也报这错,另个项目一样的位置没报错。目前确认jar包里有,但是注解引入失败。
melodykke 2017-12-25
  • 打赏
  • 举报
回复
引用 5 楼 u012097096 的回复:
SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描! “Application类”是指SpringBoot项目入口类。这个类的位置很关键: 如果Application类所在的包为:com.boot.app,则只会扫描com.boot.app包及其所有子包,如果service或dao所在包不在com.boot.app及其子包下,则不会被扫描! 即, 把Application类放到dao、service所在包的上级,com.boot.Application 知道这一点非常关键,不知道spring文档里有没有给出说明,如果不知道还真是无从解决
—————————————————————————————————————————————————————————— 五楼提到的确实是很多人没注意就容易掉坑的地方
阿衰弟 2017-11-29
  • 打赏
  • 举报
回复
在启动类上加 @ServletComponentScan
深夜猿 2017-11-13
  • 打赏
  • 举报
回复
不行啊 在action里面加了@EnableAutoConfiguration 还是一样
丿灬林林 2017-11-02
  • 打赏
  • 举报
回复
我的也不对,楼主解决了给个建议
抱枕抱枕 2017-08-27
  • 打赏
  • 举报
回复
楼主解决了吗?我也是这样的楼上的注解我都加了,包的路径也是对的。可是还是不对
monitor-jone 2017-07-08
  • 打赏
  • 举报
回复
5楼厉害了。
阿惯 2017-07-06
  • 打赏
  • 举报
回复
引用 14 楼 chinrui 的回复:
[quote=引用 13 楼 fernando_2008 的回复:] 我的启动类的包命是这个 controller的包命如下 启动的时候还是会报这个错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tempControllor': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.templates.dao.UserDao com.templates.controller.TempControllor.userDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.templates.dao.UserDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 求解~~~~
@SpringBootApplication 注解效果等同于 @Configuration,@EnableAutoConfiguration 及 @ComponentScan 这三个注解一起使用,所以不要在 Controller 上面添加 @EnableAutoConfiguration [/quote] 启动类上加上这个 @EnableJpaRepositories
qchery 2017-05-01
  • 打赏
  • 举报
回复
引用 13 楼 fernando_2008 的回复:
我的启动类的包命是这个 controller的包命如下 启动的时候还是会报这个错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tempControllor': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.templates.dao.UserDao com.templates.controller.TempControllor.userDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.templates.dao.UserDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 求解~~~~
@SpringBootApplication 注解效果等同于 @Configuration,@EnableAutoConfiguration 及 @ComponentScan 这三个注解一起使用,所以不要在 Controller 上面添加 @EnableAutoConfiguration
fernando_2008 2017-04-30
  • 打赏
  • 举报
回复
我的启动类的包命是这个


controller的包命如下

启动的时候还是会报这个错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tempControllor': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.templates.dao.UserDao com.templates.controller.TempControllor.userDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.templates.dao.UserDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

求解~~~~
花开浪漫拾 2017-03-24
  • 打赏
  • 举报
回复
引用 5 楼 u012097096 的回复:
SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描! “Application类”是指SpringBoot项目入口类。这个类的位置很关键: 如果Application类所在的包为:com.boot.app,则只会扫描com.boot.app包及其所有子包,如果service或dao所在包不在com.boot.app及其子包下,则不会被扫描! 即, 把Application类放到dao、service所在包的上级,com.boot.Application 知道这一点非常关键,不知道spring文档里有没有给出说明,如果不知道还真是无从解决
五楼正解, application.java 可以放在controller、service、dao层都可以,但是要保证application.java 包位置处于所有层的上级 ,比如com.xxx.web、com.xxx.service、com.xxx.dao。把application.java放在com.xxx即可
baidu_34821780 2017-03-15
  • 打赏
  • 举报
回复
引用 1 楼 qq_15915835 的回复:
dao没有实现类,也没有注解,咋注入啊
没玩过就不要乱吹b,
baidu_34821780 2017-03-15
  • 打赏
  • 举报
回复
引用 2 楼 qnmdcsdn 的回复:
+1
jpa需要注解?需要实现?先好好学习技术吧。
丢雷老某 2017-03-13
  • 打赏
  • 举报
回复
五楼 屌 ~~~
搬砖阶段 2017-02-09
  • 打赏
  • 举报
回复
555 还是五楼厉害
雨冰 2017-01-12
  • 打赏
  • 举报
回复
5楼正解啊,在仔细看一下项目的结构,application必须在所扫描的包的第一层。再就是继承了JPA 是不需要再写实现类的。你的代码应该没错
malachi95 2016-11-18
  • 打赏
  • 举报
回复
楼主解决了这个问题吗,我也是一样,他们说的包的路径我也是对的,实在不知道怎么解决了
加载更多回复(5)
​ 博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌项目名称基于Web的酒店客房管理系统的设计与实现系统说明3.2.1  用户模块功能分析前台模块应主要包括用户登录模块、用户注册模块、查看客房信息模块、客房预定 模块、用户留言模块、充值模块和个人信息维护模块。用户登录模块:用户通过输入注册的的账号和密码,然后进行身份验证,匹配成功 后实现登录功能。用户注册模块:用户输入合法的账号和密码可以实现注册功能。 查看客房信息模块:用户可以通过首页查看客房的价格,图片,详情等信息,从而   可以选择想要预定的房间。 客房预定模块:用户选择自己想要预定的客房后,可以通过输入相关信息进行订房操作。用户留言模块:用户可以向管理员发送留言。 充值模块:用户可以通过添加银行卡再为自己进行充值操作。 个人信息维护模块:用户可以修改自己的姓名、密码、身份证号等信息,还可以查看自己的订单。3.2.2  管理员模块功能分析对于管理员而言,一个好的管理系统总是能让酒店的管理工作事半功倍[7]。管理员 能够通过这个系统对自己的酒店情况一目了然,应该包括客户留言模块、客房管理模 块、订房信息管理模块、入住信息管理模块、统计分析模块、酒店新闻管理模块、会 员信息管理模块、员工信息管理模块、系统用户管理模块、个人信息维护模块。客户留言模块:管理员可以查看并回复用户的留言。客房管理模块:管理员可以管理客房信息,可以添加新的客房,删除已经停用的客房信息,还可以修改现有的客房信息。订房信息管理模块:管理员可以处理用户的订房请求,为用户办理入住手续。入住信息管理模块:对于没有注册的线下客户,也可以办理入住手续。统计分析模块:可以对酒店所有的入住信息进行记录和总结分析。酒店新闻管理模块:管理员可以更新网站上的新闻公告,展示图片等信息。会员信息管理模块:管理员可以查看到所有的注册会员信息,可以对会员信息进行删除,修改,添加操作。员工信息管理模块:管理员可以查看到自己公司所有的员工信息,而且还可以对员工的相关信息进行管理。系统用户管理模块:管理员可以查看到所有的系统管理员信息并对管理员信息进行管理。个人信息维护模块:管理员可以更改自己的登录密码或者是姓名、性别、手机号等 相关个人信息。​编辑 环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本;6.是否Maven项目:否;技术栈1. 后端:Spring+SpringMVC+Mybatis2. 前端:JSP+CSS+JavaScript+jQuery使用说明1. 使用Navicat或者其它工具,在mysql创建对应名称的数据库,并导入项目的sql文件;2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;3. 将项目springmvc-servlet.xml配置文件的数据库配置改为自己的配置;4. 运行项目,在浏览器输入http://localhost:8080/ 登录运行截图​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑 用户管理控制层:package com.houserss.controller;import javax.servlet.http.HttpSession;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import com.houserss.common.Const;import com.houserss.common.Const.Role;import com.houserss.common.ServerResponse;import com.houserss.pojo.User;import com.houserss.service.IUserService;import com.houserss.service.impl.UserServiceImpl;import com.houserss.util.MD5Util;import com.houserss.util.TimeUtils;import com.houserss.vo.DeleteHouseVo;import com.houserss.vo.PageInfoVo;/** * Created by admin */@Controller@RequestMapping(/user/)public class UserController if (ip != null && ip.length() > 0) String[] ips = ip.split(,);for (int i = 0; i  

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧