@Autowired失败@Resource成功

qq_36951370 2017-12-04 10:15:24
我在spring文件中配置了 <bean id="paramParse" class="xxxx.ParamParse"/>

在java代码里面使用 @Autowired private ParamParse paramParse; 就是 null ;
换成了 @Resource private ParamParse paramParse; 就注入成功了! 完全不知道错在哪里。。。

在我项目的 web.xml 里面,加载了spring配置,也有ContextLoaderListener监听器:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/config/spring*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

在spring-mvc配置里面,也加载了注解配置 <mvc:annotation-driven />
还有 <context:component-scan base-package=...>
...全文
594 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36951370 2017-12-05
  • 打赏
  • 举报
回复
引用 2 楼 dny2012 的回复:
[quote=引用 1 楼 dny2012 的回复:] @Resource默认按 byName自动注入,而@Autowiredsh是按byType自动注入,想使用名称装配可以结合@Qualifier注解进行使用,如: @Autowired @Qualifier("paramParse") private ParamParse paramParse
,另外,配置文件加个<context:annotation-config />[/quote] 就算我在配置文件加了 <context:annotation-config /> , 也加了@Qualifier("paramParse") , debug的结果还是 null 的 @Autowired是按byType自动注入,那么这个 byType 是个什么啊
qq_36951370 2017-12-05
  • 打赏
  • 举报
回复
dny2012 2017-12-05
  • 打赏
  • 举报
回复
引用 1 楼 dny2012 的回复:
@Resource默认按 byName自动注入,而@Autowiredsh是按byType自动注入,想使用名称装配可以结合@Qualifier注解进行使用,如: @Autowired @Qualifier("paramParse") private ParamParse paramParse
,另外,配置文件加个<context:annotation-config />
dny2012 2017-12-05
  • 打赏
  • 举报
回复
@Resource默认按 byName自动注入,而@Autowiredsh是按byType自动注入,想使用名称装配可以结合@Qualifier注解进行使用,如: @Autowired @Qualifier("paramParse") private ParamParse paramParse

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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