Spring常用的三种注入方式
一、用set方法属性注入
1、首先创建User类,声明属性与set方法,提供show方法用于输出name,age
public class User {
private String name;
private int age;
public void setBook(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void show(){
System.out.println("name : "+name);
System.out.println("Age : "+age);
}
}
2、用xml进行对象创建,并给属性赋值。
<bean id="user" class = "com.zx.pojo.User">
<property name="name" value="小明"></property>
<property name="age" value="23"></property>
</bean>
class是要创建对象的类的类包路径, id是自建唯一标识。对象创建完成。
property标签中 name是属性名,value是属性值。
3、测试。
@Test
public void test(){
//1.加载spring配置文件
ApplicationContext context =
new ClassPathXmlApplicationContext("beans.xml");
//2.获取配置创建的对象
User user = context.getBean("user", User.class);
System.out.println(user);//输出地址看一下
user.show();
}
二、用有参构造器属性注入
1、创建Orders类,声明属性,提供有参构造器
public class Orders {
private String oname;
private double price;
public Orders(String oname, double price) {
this.oname = oname;
this.price = price;
}
public void test(){
System.out.println("设备名:"+oname+",价格:"+price);
}
}
2、配置xml进行对象创建,同时用构造器赋值
<bean id="orders" class="com.zx.pojo.Orders">
<constructor-arg name="oname" value="电脑"></constructor-arg>
<constructor-arg name="price" value="5288"></constructor-arg>
</bean>
3、测试。
@Test
public void testAdd(){
//1.加载spring配置文件
ApplicationContext context =
new ClassPathXmlApplicationContext("beans.xml");
//2.获取配置创建的对象
Orders orders = context.getBean("orders", Orders.class);//这里的第一个参数是bean里的id,用于检索类所在位置
System.out.println(orders);
orders.test();
}
补充:p名称空间注入,简化set注入
1、在配置文件中添加p名称空间 2、注入
<bean id="user" class="com.zx.pojo.User" p:name="小王" p:age="16"></bean>
注入空值
property中这样写就可以了。
<bean id="user" class = "com.zx.pojo.User">
<property name="name">
<null/>
</property>
</bean>
注入特殊符号
(…)
