自动装配

新建person类:

package com.spring.bean.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 + "]";
} }

新建Car类:

package com.spring.bean.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 + "]";
}
}

Address类:

package com.spring.bean.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 + "]";
}
}

配置文件:

    <bean id="address" class="com.spring.bean.autowire.Address"
p:city="北京" p:street="芙蓉观"></bean> <bean id="car" class="com.spring.bean.autowire.Car"
p:brand="奥迪" p:price="3000"></bean> <bean id="person" class="com.spring.bean.autowire.Person"
p:name="汤姆" p:address-ref="address" p:car-ref="car"></bean>

使用:

        ApplicationContext ctx=new ClassPathXmlApplicationContext("beans-autowire.xml");
Person person=(Person) ctx.getBean("person");
System.out.print(person);

运行:

改成自动装配:

byName:可以使用autowire属性自动装配的方式,byName根据bean的名字和当前bean的setter风格的属性名自动装配。

    <bean id="address" class="com.spring.bean.autowire.Address"
p:city="北京" p:street="芙蓉观"></bean> <bean id="car" class="com.spring.bean.autowire.Car"
p:brand="奥迪" p:price="3000"></bean> <!-- 可以使用autowire属性自动装配的方式,byName根据bean的名字和当前bean的setter风格的属性名自动装配 ,
若有匹配的,则进行自动装配,若没有匹配的不装配-->
<bean id="person" class="com.spring.bean.autowire.Person"
p:name="汤姆" autowire="byName"></bean>

byType:

可以使用autowire属性自动装配的方式,byName根据bean的类型和当前bean的setter风格的类型进行自动装配 ,
但是,如果IOC容器中有一个以上的类型匹配的bean,则抛异常。

    <!-- 可以使用autowire属性自动装配的方式,byName根据bean的类型和当前bean的setter风格的类型进行自动装配 ,
但是,如果IOC容器中有一个以上的类型匹配的bean,则抛异常-->
<bean id="person" class="com.spring.bean.autowire.Person"
p:name="汤姆" autowire="byType"></bean>

最新文章

  1. IOS热更新-JSPatch实现原理+Patch现场恢复
  2. Windows平台Tomcat服务搭建
  3. (整理)C#基础知识_泛型的实现
  4. platform总线globalfifo驱动
  5. OOA/OOD/OOP(了解)
  6. 利用FluorineFX录制音频与视频
  7. jQuery中的渐变动画效果
  8. HDU1022 Train Problem I 栈的模拟
  9. 【转】Cocos2d-x 弹出对话框的设计与实现
  10. ReactiveCocoa入门教程——第一部分(转)
  11. codevs2492 上帝造题的七分钟 2
  12. Wikioi 1169 传纸条
  13. s3c6410学习笔记-烧写uboot+构建文件系统
  14. mac 辅助接口
  15. java7 - JDK
  16. bui前端框架+yii整理
  17. vue.js+webpack在一个简单实例中的使用过程demo
  18. 某app的安全性分析过程
  19. PS滤镜制作下雨照片特效
  20. IsNullOrEmpty和IsNullOrWhiteSpace的区别

热门文章

  1. RabbitMQ (十一) 消息确认机制 - 消费者确认
  2. Beaglebone Black教程BeagleBone Black安装最新系统映像
  3. 解决Linux环境下安装xampp之后外部无法连接MySQL的问题
  4. android 内存泄漏检测工具 LeakCanary 泄漏金丝雀
  5. [BZOJ3997][TJOI2015]组合数学(Dilworth定理+DP)
  6. [COCI2011-2012#7] KAMPANJA
  7. 【动态规划】Codeforces Round #406 (Div. 2) C.Berzerk
  8. 初识Ant-Design
  9. 83.(01背包)CYD刷题
  10. 让你的WPF程序在Win7下呈现Win8风格主题