Spring 注入的两种方式

Spring 的两种注入方式:

1. 属性注入:通过无参构造函数+setter方法注入

2. 构造注入:通过有参的构造函数注入。

优缺点:

1. 属性注入直白易懂,缺点是对于属性可选的时候,很多个构造函数会显得类很臃肿。

2. 构造注入是一种高内聚的体现,特别是针对有些属性需要在对象在创建时候赋值,且后续不允许修改(不提供setter方法)。无参构造方法也不能省略。

不是构造的就是用属性注入的方法。上一篇博客就是属性注入。

构造的例子:

public class HelloSpring {
    private String name;//定义变量who 他的值通过Spring框架进行注入
//构造注入
    public HelloSpring() {
    }

    public HelloSpring(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "HelloSpring{" +
                "name='" + name + '\'' +
                '}';
    }
}

ApplicationContext.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
   <!--构造注入-->
    <bean id="HelloSpring" class="cn.kitty.bean.HelloSpring" >
        <constructor-arg  index="0" value="kitty"></constructor-arg>
    </bean>
    </beans>

test

public class Test201710059 {
    @Test
    public void Test201710059(){
        ApplicationContext context=new ClassPathXmlApplicationContext("ApplicationContext.xml");
        HelloSpring spring = (HelloSpring) context.getBean("HelloSpring");
        System.out.println(spring);
    }
}

 

posted @ 2017-10-16 17:30  春眠不觉笑  阅读(269)  评论(0编辑  收藏  举报