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>

注入特殊符号

(…)

三 用注解进行注入

经验分享 程序员 微信小程序 职场和发展