J2EE之Spring中Bean的自动装配及Bean之间的关系
来源:互联网 发布:电脑桌面备忘录软件 编辑:程序博客网 时间:2024/05/22 09:47
J2EE之Spring中Bean的自动装配及Bean之间的关系
Bean的自动装配:
代码实现:
beans-autowire.xml:
<?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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="address" class="com.mooc.spring.beans.autowire.Address" p:city="Beijing" p:street="HuiLongGuan"></bean> <bean id="address2" class="com.mooc.spring.beans.autowire.Address" p:city="baoma" p:street="yiqi"></bean> <bean id="car" class="com.mooc.spring.beans.autowire.Car" p:brand="Audi" p:price="300000"></bean> <!-- 根据名字进行自动的装配,使用 autowire="byName" byName根据bean的名字和当前bean的setter风格的属性名进行自动的装配 若有匹配的则进行自动装配,如没有则不装配 byType根据bean的类型和当前的bean的属性的类型进行自动装配 如果当前ioc容器中有1个以上的类型匹配则抛异常 --> <bean id="person" class="com.mooc.spring.beans.autowire.Person" p:name="Tom" autowire="byType"></bean></beans>
Car.java:
package com.mooc.spring.beans.autowire;public class Car { private String brand; private double price; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { return "Car [brand=" + brand + ", price=" + price + ", getBrand()=" + getBrand() + ", getPrice()=" + getPrice() + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()=" + super.toString() + "]"; }}
Address.java:
package com.mooc.spring.beans.autowire;public class Address { private String city; private String street; public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } @Override public String toString() { return "Address [city=" + city + ", street=" + street + "]"; }}
Person.java:
package com.mooc.spring.beans.autowire;public class Person { private String name; private Address address; private Car car; public String getName() { return name; } public void setName(String name) { this.name = name; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public Car getCar() { return car; } public void setCar(Car car) { this.car = car; } @Override public String toString() { return "Person [name=" + name + ", address=" + address + ", car=" + car + "]"; }}
main.java:
package com.mooc.spring.beans.autowire;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class main { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("beans-autowire.xml"); Person person=(Person) context.getBean("person"); System.out.println(person); }}
Bean之间的关系:
代码实现:
beans-relation.xml:
<?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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 抽象bean:bean的属性abstract="true,这样的bean不能被IOC实例化,无法被继承 若一个bean的class属性没有被指定,则该bean必须是一个抽象bean 可以忽略父 Bean 的 class 属性, 让子 Bean 指定自己的类, 而共享相同的属性配置. 但此时 abstract 必须设为 true --> <bean id="address" class="com.mooc.spring.beans.autowire.Address" p:city="Beijing^" p:street="WuDaoKou"></bean> <!-- bean配置的继承,使用bean的parent的继承,子类也可以覆盖父类的属性 <bean id="address2" p:city="Hangzhou" p:street="liufuya" parent="address"></bean> --> <bean id="address2" p:street="liufuya" parent="address"></bean> <bean id="address3" p:street="demaxiya" parent="address2"></bean> <bean id="car" class="com.mooc.spring.beans.autowire.Car" p:brand="aodi" p:price="30000"></bean> <!-- 要求在配置Person时,必须有一个关联的car! 换句话说person这个bean 依赖于car这个bean --> <bean id="person" class="com.mooc.spring.beans.autowire.Person" p:name="Tom" p:address-ref="address3" depends-on="car"></bean></beans>
main.java:
package com.mooc.spring.beans.relation;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.mooc.spring.beans.autowire.Address;import com.mooc.spring.beans.autowire.Person;public class main { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("beans-relation.xml"); Address address=(Address) context.getBean("address"); System.out.println(address); address=(Address) context.getBean("address2"); System.out.println(address); address=(Address) context.getBean("address3"); System.out.println(address); Person person=(Person) context.getBean("person"); System.out.println(person); }}
1 0
- J2EE之Spring中Bean的自动装配及Bean之间的关系
- spring学习总结(五):IOC & DI 配置 Bean 之自动装配及bean之间的关系
- Spring -- Bean自动装配&Bean之间关系&Bean的作用域
- 用spring的注解建立bean与bean之间的关系组件装配及自动注入依赖对象
- Spring自动装配及bean的生命周期
- spring中bean的自动装配(6)
- spring中bean的自动装配
- Spring中Bean的自动装配
- spring框架中Bean的自动装配
- [Spring]Bean的自动装配
- # Spring Bean 的自动装配
- spring bean的自动装配
- spring bean的自动装配
- Spring的自动装配Bean
- Spring bean的自动装配
- 【Spring】Bean的自动装配
- Spring Bean的自动装配
- Spring bean的自动装配
- jquery中的ready方法、js中的window.onload和body标签中的onload的区别
- 打印杨辉三角(廖雪峰python教程)
- 如何将数据封装为JSON包
- gcc,gdb基本用法
- index文件加载不出来问题-清除浏览器缓存
- J2EE之Spring中Bean的自动装配及Bean之间的关系
- Android设置TextView字体呈现多种颜色的方法
- Linux编译内核
- 产生服从正态分布随机数(转载)
- bzoj2292 永远挑战
- 剑指offer之用两个栈实现队列(java实现)
- 浏览器驱动
- Android数据存储方式之文件存储详解
- Docker Window下安装