spring自动装配小问题

如下文件,第一:当加入...default-autowire="byName"时,老是提示其后面缺少“>”或者“/>”,可是这个不是明明有吗?第二:如果没有自动装配,也可... 如下文件,
第一:当加入...default-autowire="byName"时,老是提示其后面缺少“>”或者“/>”,可是这个不是明明有吗?
第二:如果没有自动装配,也可以直接用setter方法进行注入,也就是说没有...default-autowire="byName"这句话我也可以注入,这是怎么回事?
<?xml version="1.0" encoding="UTF-8"?>
<beans ...default-autowire="byName">
<bean id="user" class="com.shi.User">
<property name="uname" value="shi"></property>
<property name="ubirth" value="2000-12-3"></property>
<property name="id" value="123"></property>
</bean>
</beans>
这是User类
package com.shi;
public class User {
private String uname,ubirth;
private int id;

set,get方法……

这是UserManager
package com.shi;
public class UserManager {
private User user;
public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}
}

这是XML文件
<?xml version="1.0" encoding="UTF-8"?>
<beans default-autowire="byName">
<bean id="user" class="com.shi.User">
<property name="uname" value="shi"></property>
<property name="ubirth" value="2000-12-3"></property>
<property name="id" value="123"></property>
</bean>
<bean id="manager" class="com.shi.UserManager"></bean>
</beans>
但是报错了,说找不到beans,什么原因?
展开
 我来答
百度网友bc81302
2012-10-22 · TA获得超过272个赞
知道小有建树答主
回答量:181
采纳率:100%
帮助的人:55.9万
展开全部
第一个问题应该是什么地方写错了,可以使用排除法一点点缩小范围检查,去掉default-autowire="byName"会不会出错。
第二个问题是你并没有理解自动装配,你用的都是set注入,没有用到自动装配;自动装配应该是有2个bean,一个bean需要另一个bean的依赖,不需要使用<propertyname="user" ref="user"/>,根据在java类里定义的属性名字为user,自动匹配user Bean。给个例子如下:
定义一个java文件依赖你的user
package com.shi;
public class Bean1 {
private User user

getUser/setUser方法……

//其他操作……
}

XML定义bean
<bean id="bean1" class="com.shi.Bean1"/>
更多追问追答
追问
  非常感谢哈,第一个问题太坑爹了,原来是前面的那个“...”,估计是版本的问题,去掉就可以了
追答
第二个问题懂了没有啊?
法澜59
2012-10-25
知道答主
回答量:66
采纳率:0%
帮助的人:15.4万
展开全部
private String uname,ubirth;改成 private String uname; private String ubirth;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuwen343434
2012-10-23
知道答主
回答量:8
采纳率:0%
帮助的人:5.9万
展开全部
在定义Bean时,<bean>标签有一个autowire属性,我们可以通过指定它来让容器为受管JavaBean自动注入依赖对象。
byName:通过属性的名字的方式查找JavaBean依赖的对象并为其注入。比如说类Computer有个属性printer,指定其autowire属性为byName后,Spring IoC容器会在配置文件中查找id/name属性为printer的bean,然后使用Seter方法为其注入。
理解了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式