1. 属性注入
属性注入,就是通过setter方法,注入Bean的属性或者依赖的对象
在属性注入中通常使用property元素,使用name属性指定Bean的属性名称,使用value指定属性值
<bean id="helloWorld" class="spring.beans.HelloWorld">
<property name="name" value="Spring"></property>
</bean>
2. 构造器注入
构造方式注入Bean的属性值或者依赖的对象
构造器注入在constructor-arg元素中声明属性
设置一个类User.java
public class User {
private String name;
private int age;
public User(String name,int age){
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
配置xml文件
<bean id="user" class="spring.beans.User">
<constructor-arg value="张三" type="java.lang.String"></constructor-arg>
<constructor-arg value="11" index="1"></constructor-arg>
</bean>
在主函数中进行调用
public class Main {
public static void main(String[] args) {
// 1. 创建Spring的IOC容器对象
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// 2. 从IOC容器中获取Bean实例
User user = applicationContext.getBean(User.class);
// 3. 调用hello方法
System.out.println(user.toString());
}
}
运行结果
注意如果设置值中包含有特殊字符则可以这样配置xml
<bean id="user" class="spring.beans.User">
<constructor-arg type="java.lang.String">
<value><![CDATA[《张三!@>]]></value>
</constructor-arg>
<constructor-arg value="11" index="1"></constructor-arg>
</bean>