Spring 框架Bean的自动装配
来源:互联网 发布:des数据加密算法流程 编辑:程序博客网 时间:2024/06/05 22:59
Spring IOC可以自动装配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.spring.test.autowire.Address" p:city="Suzhou" p:street="ShiLu"></bean> <bean id="car" class="com.spring.test.autowire.Car" p:brand="Audi" p:price="200000"></bean> <bean id="car1" class="com.spring.test.autowire.Car" p:brand="Fute" p:price="300000"></bean> <!-- 可以使用autowire属性指定自动装配的方式, byName 根据 bean 的名字和当前 bean 的 setter 风格的属性名进行自动装配,若有匹配,则自动装配,若没有匹配的,则不装配 byType 根据 bean 的名字和当前 bean 的属性类型进行自动装配,若IOC容器中有一个以上该类型匹配的bean,则抛出异常 constructor 使用构造方法完成对象注入,其实也是根据构造方法的参数类型进行对象查找,相当于采用byType的方式。 autodetect 自动选择:如果对象没有无参数的构造方法,那么自动选择constructor的自动装配方式进行构造注入。如果对象含有无参数的构造方法,那么自动选择byType的自动装配方式进行setter注入。 no 不支持自动装配功能 default 表示默认采用上一级标签的自动装配的取值。如果存在多个配置文件的话,那么每一个配置文件的自动装配方式都是独立的。 --> <bean id="person" class="com.spring.test.autowire.Person" p:name="Kitty" autowire="byName"></bean></beans>
Main.java
package com.spring.test.autowire;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main { @Test public void testAutoWire() { ApplicationContext context = new ClassPathXmlApplicationContext("beans-autowire.xml"); Person person = (Person) context.getBean("person"); System.out.println(person); }}
Address.java
package com.spring.test.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 + "]"; }}
Car.java
package com.spring.test.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 + "]"; }}
Person.java
package com.spring.test.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 + "]"; }}
0 0
- Spring 框架Bean的自动装配
- spring框架中Bean的自动装配
- Spring框架---Bean的自动装配
- Spring Bean的装配 -- 自动装配
- [Spring]Bean的自动装配
- # Spring Bean 的自动装配
- spring bean的自动装配
- spring bean的自动装配
- Spring的自动装配Bean
- Spring bean的自动装配
- 【Spring】Bean的自动装配
- Spring Bean的自动装配
- Spring bean的自动装配
- spring <bean>的自动装配
- Spring框架自动装配 Bean(三)
- Spring框架——bean自动装配
- Spring Bean装配-自动装配
- Spring Bean--自动装配
- HashMap和Hashtable的比较
- SQL Server 2016数据库下载
- ARC之对象转型
- css3新特性
- 3、二维数组查找一个数是不是存在
- Spring 框架Bean的自动装配
- 程序包android.support.annotation不存在
- 为什么要用 Node.js
- 实现UITextField值变化的实时监视
- IOS截取URL中的参数
- 主流数据库的分页查询语句汇总
- vim 常用指令
- iOS 时间戳转换为几分钟前等
- centOS下让普通用户获得root权限