装配Spring Bean

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36413887/article/details/80636905

接下来我们将讨论如何将Bean注入Spring IoC容器中。
一,依赖注入的三种方式
1.构造器注入:
(1)原理:Spring采用反射的方式,通过使用类的构造方法来完成注入;这就要求我们描述具体的类,构造方法和参数,这样Spring就会通过对应的信息用反射的形式创建对象。
(2)

package com.wjk;
public class Role{
     private String name;
     private String note;
     //省略setter和getter方法,请自行补充,重要
     public Role(String a,String b){
          name=a;note=b;
     }
}
<bean id="role1" class="com.wjk.Role">
    <constructor-arg index="0" value="控卫" />
    <constructor-arg index="1" value="球队组织者" />
</bean>

constructor-arg元素用于定义参数,index表示参数位置,value设置参数值,这样Spring便知道使用Role(String ,String)这样的构造方法去创建对象。
缺点:参数多的话比较复杂。
2.使用setter注入
(1)setter注入式Spring中最主流的注入方式,它利用javabean定义的setter来完成注入,灵活且可读性高,消除了使用构造器注入时出现多个参数的可能性,首先可以把构造方法声明为无参数的,然后使用setter注入为其设置对应的值,其实也是通过反射来实现的
(2)这里先假设为bean加入一个没有参数的构造方法

<bean id="role2" class="com.wjk.Role">
    <property name="name" value="分卫" />
    <property name="note" value="球队得分者" />
</bean>

这样Spring就会通过反射调用没有参数的构造方法生成对象,同时通过反射对应的setter注入配置的值了。这种方式是Spring最为主要的方式,在实际工作中使用广泛。

3.接口注入
(1)有时候资源来自外界,并非系统本身,比如数据库连接方式信息存在Tomcat下,我们可以通过JNDI获取,属于开发工程外的资源,这个时候可以采用接口注入的形式来获取。

猜你喜欢

转载自blog.csdn.net/weixin_36413887/article/details/80636905