03-spring学习-自动装配
2024-08-27 15:07:38
自动装配
新建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>
最新文章
- IOS热更新-JSPatch实现原理+Patch现场恢复
- Windows平台Tomcat服务搭建
- (整理)C#基础知识_泛型的实现
- platform总线globalfifo驱动
- OOA/OOD/OOP(了解)
- 利用FluorineFX录制音频与视频
- jQuery中的渐变动画效果
- HDU1022 Train Problem I 栈的模拟
- 【转】Cocos2d-x 弹出对话框的设计与实现
- ReactiveCocoa入门教程——第一部分(转)
- codevs2492 上帝造题的七分钟 2
- Wikioi 1169 传纸条
- s3c6410学习笔记-烧写uboot+构建文件系统
- mac 辅助接口
- java7 - JDK
- bui前端框架+yii整理
- vue.js+webpack在一个简单实例中的使用过程demo
- 某app的安全性分析过程
- PS滤镜制作下雨照片特效
- IsNullOrEmpty和IsNullOrWhiteSpace的区别
热门文章
- RabbitMQ (十一) 消息确认机制 - 消费者确认
- Beaglebone Black教程BeagleBone Black安装最新系统映像
- 解决Linux环境下安装xampp之后外部无法连接MySQL的问题
- android 内存泄漏检测工具 LeakCanary 泄漏金丝雀
- [BZOJ3997][TJOI2015]组合数学(Dilworth定理+DP)
- [COCI2011-2012#7] KAMPANJA
- 【动态规划】Codeforces Round #406 (Div. 2) C.Berzerk
- 初识Ant-Design
- 83.(01背包)CYD刷题
- 让你的WPF程序在Win7下呈现Win8风格主题