首页 > 其他 > 详细

(四)依赖注入

时间:2020-02-03 17:24:15      阅读:78      评论:0      收藏:0      [点我收藏+]

依赖注入(Dependency Injection,DI)。

  • 依赖 : 指Bean对象的创建依赖于Spring容器 . Bean对象的依赖资源
  • 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配

注入的三种方式:

构造器注入(有参无参)、setter注入、注解注入(自动装配)

1、构造器注入

有参构造器注入,同c命名空间注入 

public class Injection {
    private int id;
    
    public Injection(int id){
        this.id = id;
    }
}

 

无参构造器注入

引入p命名空间

xmlns:p="http://www.springframework.org/schema/p"
<!--P(属性: properties)命名空间 , 属性依然要设置set方法-->
    <bean id="userp" class="com.alan.pojo.User" p:name="alan" p:age="18"/>


2、setter注入*

要求被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写 , 如果属性是boolean类型 , 没有set方法 , 是 is 

set示例:

public class UserServiceImpl implements UserService {
    private UserDao userDao;
    // 利用set实现
    public void setUserDao(UserDao userDao) {

        this.userDao = userDao;
    }

    public void getUser() {
        userDao.getUser();
    }
}

 

新建student类,并生成相应set方法

    private String name;
    private Address address;
    private String[] books;
    private List<String> hobbys;
    private Map<String,String> card;
    private Set<String> games;
    private String wife;
    private Properties info;

 

对于不同类型,在xml中的注入

<bean id="addr" class="com.alan.pojo.Address">
    <property name="address" value="上海"/>
</bean>

<bean id="student" class="com.kuang.pojo.Student">
    <property name="name" value="小明"/>
    <property name="address" ref="addr"/><!-- bean注入-->

    <property name="books">
        <array>
            <value>西游记</value>
            <value>红楼梦</value>
            <value>水浒传</value>
        </array>
    </property>

    <property name="hobbys">
    <list>
        <value>听歌</value>
        <value>看电影</value>
        <value>爬山</value>
    </list>
    </property>

  <property name="card">
      <map>
          <entry key="中国邮政" value="456456456465456"/>
          <entry key="建设" value="1456682255511"/>
      </map>
  </property>

  <property name="games">
      <set>
          <value>LOL</value>
          <value>BOB</value>
          <value>COC</value>
      </set>
  </property>

  <property name="wife"><null/></property>

  <property name="info">
      <props>
          <prop key="学号">20190604</prop>
          <prop key="性别">男</prop>
          <prop key="姓名">小明</prop>
      </props>
  </property>

</bean>

 

3、注解注入自动装配

 

(四)依赖注入

原文:https://www.cnblogs.com/alanchenjh/p/12256230.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!