首页 > 代码库 > spring03autowire属性
spring03autowire属性
1.创建需要的实体类
public class Student { //学生实体类 private String name; //姓名 private Integer age; //年龄 private Grade grade; //年级 @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", grade=" + grade + "]"; } public Student() { super(); } public Student(String name, Integer age, Grade grade) { super(); this.name = name; this.age = age; this.grade = grade; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Grade getGrade() { return grade; } public void setGrade(Grade grade) { this.grade = grade; }}
public class Grade { //年级实体类 private String name; //年级名称 @Override public String toString() { return "Grade [name=" + name + "]"; } public Grade() { super(); } public Grade(String name) { super(); this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
public class SmallGrade extends Grade { //只是为了 验证 autowire="byType" }
2.创建对应的配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="grade" class="cn.bdqn.bean.Grade" p:name="2年级"/> <!--autowire="byName" 将域属性名称 作为ID 到容器中查询相同名称的Bean进行注入 --> <bean id="student" class="cn.bdqn.bean.Student" autowire="byName"/> </beans>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="gradeaaaaa" class="cn.bdqn.bean.Grade" p:name="2年级"/> <!-- autowire="byType" 根据域属性的类型 到容器中查询 相同类型并且具有is-a关系的一个Bean进行注入 相同类型的bean不能多于一个 --> <bean id="student" class="cn.bdqn.bean.Student" autowire="byType"/> </beans>
3.创建测试类分类运行
public class StudentTest { @Test public void test01(){ ApplicationContext context= new ClassPathXmlApplicationContext("applicationContext.xml"); Student student=(Student) context.getBean("student"); System.out.println(student); }}
4.如果在autowire="byType" 的时候 在容器中在增加一个相同类型的bean或者有is-a的关系 会报错!
如下的代码 运行会报错
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="gradeaaa" class="cn.bdqn.bean.Grade" p:name="2年级"/> <bean id="smallgrade" class="cn.bdqn.bean.SmallGrade"/> <!-- autowire="byType" 根据域属性的类型 到容器中查询 相同类型并且具有is-a关系的一个Bean进行注入 相同类型的bean不能多于一个 --> <bean id="student" class="cn.bdqn.bean.Student" autowire="byType"/> </beans>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="grade1" class="cn.bdqn.bean.Grade" p:name="1年级"/> <bean id="grade2" class="cn.bdqn.bean.Grade" p:name="2年级"/> <!-- autowire="byType" 根据域属性的类型 到容器中查询 相同类型并且具有is-a关系的一个Bean进行注入 相同类型的bean不能多于一个 --> <bean id="student" class="cn.bdqn.bean.Student" autowire="byType"/> </beans>
spring03autowire属性
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。