spring XML和注解混用的一个小问题

abcwt112 2015-04-09 11:32:29
先谢谢大家....

问题描述如下:
我在xml里定义了一个bean,比如
<bean id="mySQLRealm" class="jiang.app.realm.MySQLRealm"/>

这个MySQLRealm需要用到其他的我写的一些类....比如XXXDao....但是在这个MySQLRealm.java中我是通过spring的注解@autowired注入XXXDao的...而XXXDao我是通过@Component定义的...然后我拿到这个mySQLRealm的bean以后发现XXXDao并没有被注入...

简化一下问题的话就是我在XML定义的bean里怎么注入一个通过注解@Component定义的bean呢?

请问这个问题应该怎么解决呢...求大神指点~
谢谢~
...全文
1128 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
星河为梦 2018-11-30
  • 打赏
  • 举报
回复
@ImportResource把xml文件导入就好了
suciver 2015-04-10
  • 打赏
  • 举报
回复
你给这个bean的xxxDao暴露一个set方法,在xml配置这个bean的时候用

例如
/*此时这个UserDao默认的bean的名称是userDao,spring会把类名的首字母变为小写后面不变,依此类推,当然你也可以在@Component上给这个bean一个名称
*/
@Component("xxxDao")//此时这个UserDao在spring中的bean名称就变为了xxxDao了
public class UserDao{}

<bean id="mySQLRealm" class="jiang.app.realm.MySQLRealm">
  <property name="你xxxDao属性名" ref="xxxDao的bean名称"/>
</bean>
abcwt112 2015-04-10
  • 打赏
  • 举报
回复
谢谢大家了.... 基本上了2L说的差不多... <context:component-scan base-package="jiang" />配置在了springMVC的上下文环境里...而shiro的配置是在父上下文环境中..所以读取不到XXXDao的注解... 谢谢大家啦~
Inhibitory 2015-04-10
  • 打赏
  • 举报
回复
Shiro 是通过 Filter 实现的,使用 context listener 加载配置,得看你得 Dao Bean 是在哪个 context 加载的,Spring 有父子上下文环境,父上下文环境不能访问子上下文环境定义的 Bean,不知道你的是不是这种情况。
microhex 2015-04-10
  • 打赏
  • 举报
回复
XXXDao头上强制注入吧 @Resource(name="mySQLRealm")

81,119

社区成员

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

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