Spring的注入方式我给分为简单类型的注入和复杂类型的注入
简单类型的注入可以分为以下4种,这四种注入的类型又分为值类型和引用类型注入:
1.set方式注入
2.构造函数函数的注入
3.p名称空间注入
4.spel(spring Expression lanuage spring表达式语言)注入
下面就这四种方式做具体的阐述:
准备一个实体类,有值类型的数据和引用类型的数据,并分别给出不同的构造器和实现toString方法
代码如下:
package com.it.bean;
public class User {
private String name;
private Integer age;
private Car car;
public User(String name, Car car) {
System.out.println("User(String name, Car car)");
this.name = name;
this.car = car;
}
public User(Car car,String name) {
System.out.println("User(Car car,String name)");
this.name = name;
this.car = car;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public User() {
System.out.println("空参构造");
}
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;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", car=" + car + "]";
}
}
package com.it.bean;
public class Car {
private String name;
private String color;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
@Override
public String toString() {
return "Car [name=" + name + ", color=" + color + "]";
}
}
**
1.set方式注入:
**
在applicationContext.xml中配置如下:
<!--set方式注入 -->
<bean name="user" class="com.it.bean.User">
<!-- 值类型 -->
<!--为User对象中名为name的属性注入tom作为值 -->
<property name="name" value="tom"></property>
<property name="age" value="18"></property>
<!-- 引用类型 -->
<!--将car注入-->
<property name="car" ref="car"></property>
</bean>
**
2.构造函数函数的注入
**
首先在开发场景中名字相同参数不同或者参数顺序不同的构造函数可能会存在,那么就需要准确定位到是利用哪一个构造函数来进行注入,配置如下:
<bean name="user2" class="com.it.bean.User">
<constructor-arg name="name" value="jerry" inde