spring如何对普通类进行注入

<beanid="xardDao"class="dao.impl.xardDaoImpl"><propertyname="hibernateTemplate"><refb... <bean id="xardDao"
class="dao.impl.xardDaoImpl">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate" />
</property>
</bean>

<bean id="xardService"
class="service.impl.xardServiceImpl">
<property name="xardDao">
<ref bean="xardDao" />
</property>
</bean>

现在想往一个普通类Test里注入xardService,
<bean id="Test"
class="util.Text">
<property name="xardService">
<ref bean="xardService" />
</property>
</bean>

这时候就在Test中报空指针异常了,显然注入没有成功,set方法也写了。
请教怎么往一个普通类里注入。这个类不是接口,没关系的吧。
从日志看出,服务器一启动的时候就帮我把applicationContext加载了
展开
 我来答
山楂小子
2009-05-13 · TA获得超过192个赞
知道小有建树答主
回答量:240
采纳率:0%
帮助的人:224万
展开全部
没有注入成功是因为命名需合乎sun规范,而且配置文件中必须和实际类中的变量名要满足一致的。
如:
<bean id="xardService"
class="service.impl.xardServiceImpl">
<property name="xardDao">
<ref bean="xardDao" />
</property>
</bean>
那你的xardServiceImpl.java中必须有这样一个成员:
****
xardDaoImpl xardDao;
****
而且要有get,set方法。
那相似的,你的Text.java中必须有成员:
xardServiceImpl xardService;
80705041
2009-05-13 · TA获得超过469个赞
知道小有建树答主
回答量:197
采纳率:100%
帮助的人:222万
展开全部
按照楼主这样说明应该没有问题

如果想解决的话,写一个测试类

applicationContext.xml这个文件如果在webRoot/WEB-INF下的话
测试类的里main方法这样写: ApplicationContext ctx = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml");
然后
Test t = (Test)ctx.getBean("Test");
t.foo();
//foo方法中打印下xardService
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
user1temp
2009-05-13
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
不要接口一样可以.

有set方法,加上你的这段配置是没问题的.

问题是你要确定运行test类的时候,是否执行加载了applicationContext配置文件.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liyi830813
2009-05-13 · TA获得超过952个赞
知道小有建树答主
回答量:1034
采纳率:0%
帮助的人:965万
展开全部
从你发的部分来看好像没什么问题

最好是把错误提示发上来,检查有没有重复的bean,service中是否存在xardDao并且已经有get set方法(这个最好是用软件自动生成的)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式