@Resource注入问题

weixin_42209538 2018-07-18 03:05:09

小白求助:为什么SqlSessionFactory为null,@Resource怎么注入;使用读文档方式可以获取到SqlSessionFactory,有没有大神教教
...全文
1530 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
王广大的烦恼 2018-07-19
  • 打赏
  • 举报
回复
你把你报的错发出来看下
阿甘1976 2018-07-19
  • 打赏
  • 举报
回复

你看下你注入的SqlSessionFactory类型和配置文件里的CLASS都不是一致的,怎么可能注入成功啊
maradona1984 2018-07-19
  • 打赏
  • 举报
回复
引用 15 楼 weixin_42209538 的回复:
[quote=引用 13 楼 maradona1984 的回复:]
https://blog.csdn.net/qq_32786873/article/details/56480880
你先解决这个问题,你的问题太多,一个一个解决,的确挺白的
该有的jar包有了,依照它那个测试,就是在@Autowired自动注入的时候为null,他没发xml配置文件,小白不知道问题在哪[/quote]
所以说问题很多,UserDaoImpl要加注解,xml配置中要加解析注解的配置
https://www.cnblogs.com/guanghe/p/6123330.html
weixin_42209538 2018-07-19
  • 打赏
  • 举报
回复
我启动Tomcat后,通过jsp进入Controller,然后可以正常的使用注解。
但是单单启动Tomcat,再使用Junit去测试,一样为null
可能是Web项目Junit测试环境不支持这样。

谢谢大家的回复 @可爱的楼友们
weixin_42209538 2018-07-19
  • 打赏
  • 举报
回复
引用 17 楼 gl74gs48 的回复:

你看下你注入的SqlSessionFactory类型和配置文件里的CLASS都不是一致的,怎么可能注入成功啊
在测试类里我用User类注入也不行啊,改了之后也为null
eyeslin 2018-07-19
  • 打赏
  • 举报
回复
17楼正解

引用 17 楼 gl74gs48 的回复:

你看下你注入的SqlSessionFactory类型和配置文件里的CLASS都不是一致的,怎么可能注入成功啊
weixin_42209538 2018-07-18
  • 打赏
  • 举报
回复
引用 13 楼 maradona1984 的回复:
https://blog.csdn.net/qq_32786873/article/details/56480880
你先解决这个问题,你的问题太多,一个一个解决,的确挺白的
该有的jar包有了,依照它那个测试,就是在@Autowired自动注入的时候为null,他没发xml配置文件,小白不知道问题在哪
MLi_hb 2018-07-18
  • 打赏
  • 举报
回复
你可以在Dao类的无参构造方法中打个断点调试就知道spring有没有加载这个类了
maradona1984 2018-07-18
  • 打赏
  • 举报
回复
https://blog.csdn.net/qq_32786873/article/details/56480880
你先解决这个问题,你的问题太多,一个一个解决,的确挺白的
weixin_42209538 2018-07-18
  • 打赏
  • 举报
回复
引用 11 楼 xiaoming120915 的回复:
spring是会按照你配置的文件去扫描不错,但是spring在扫描的时候也是有选择的,他会去扫描带有特殊注解的类(也就是说把这个类交给spring管理),至于没有注解的类,spring是不会帮你管理的。自然也就不会去帮你实例化这类以及为这类的属性赋值。
我也试过在类前加@Repository、@Component,结果也不行,看来只能先用getBean()方式了
MLi_hb 2018-07-18
  • 打赏
  • 举报
回复
spring是会按照你配置的文件去扫描不错,但是spring在扫描的时候也是有选择的,他会去扫描带有特殊注解的类(也就是说把这个类交给spring管理),至于没有注解的类,spring是不会帮你管理的。自然也就不会去帮你实例化这类以及为这类的属性赋值。
weixin_42209538 2018-07-18
  • 打赏
  • 举报
回复
引用 9 楼 xiaoming120915 的回复:
能够获取说明spring容器里是有这来给个实例的,也就是说spring配置文件中的那两个bean配置文件已经扫描并装载了。你的dao层的空指针应该是由于spring没有扫描到这个Dao类。
我修改<context:component-scan base-package="com.wgq.medicine"></context:component-scan>这个扫描路径,添加了几个,还是null,是哪里没配置好吗
MLi_hb 2018-07-18
  • 打赏
  • 举报
回复
能够获取说明spring容器里是有这来给个实例的,也就是说spring配置文件中的那两个bean配置文件已经扫描并装载了。你的dao层的空指针应该是由于spring没有扫描到这个Dao类。
weixin_42209538 2018-07-18
  • 打赏
  • 举报
回复
引用 7 楼 xiaoming120915 的回复:
ClassPathXmlApplicationContext
你可以去搜搜它的用法,通过这个类去获取spring容器中的实体类
通过这个方法可以获取到,,注解怎么获取
MLi_hb 2018-07-18
  • 打赏
  • 举报
回复
ClassPathXmlApplicationContext
你可以去搜搜它的用法,通过这个类去获取spring容器中的实体类
weixin_42209538 2018-07-18
  • 打赏
  • 举报
回复
引用 5 楼 xiaoming120915 的回复:
Dao层加个@repository注解试试。
test类可以使用getBean()试试。
在Dao层加不加@repository试过了都不行,test类使用getBean()这句话不明白。。。
MLi_hb 2018-07-18
  • 打赏
  • 举报
回复
Dao层加个@repository注解试试。
test类可以使用getBean()试试。
weixin_42209538 2018-07-18
  • 打赏
  • 举报
回复
引用 2 楼 haizeiCSDN_java 的回复:
@Resource是按照名称装配的,当找不到与名称匹配的bean才会按类型装配。
我在bean里写的id设引用的一样了,换成@Autowired也不行
weixin_42209538 2018-07-18
  • 打赏
  • 举报
回复
引用 1 楼 adaloceyou 的回复:
应该用@Autowired或者@Inject
用@Autowired和@Inject也不行
卡卡罗特琪琪 2018-07-18
  • 打赏
  • 举报
回复
@Resource是按照名称装配的,当找不到与名称匹配的bean才会按类型装配。
加载更多回复(1)

81,092

社区成员

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

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