zoukankan      html  css  js  c++  java
  • Spring_DI

    DI

    DI全称:Dependency Injection又称作依赖注入,依赖注入的好处是可扩展。

    依赖注入的分类:

    1.设值注入

    在设值注入中,Bean必须有针对该属性的setter方法,并且Bean定义文件中有该属性的设值,例如:

    Java类

     1 public class HelloWorld {
     2 
     3     private String name; 
     4 
     5 
     6     public void setName(String name) {
     7 
     8         this.name = name;
     9 }
    10 }

    配置文件

    1 <bean id = "helloworld" class = "com.feimao.DI.test.HelloWorld">
    2 
    3    <property name = "name" ref = "feimao"/>

    构造方法注入

    可以使用<construct-arg>元素来表示构造方法注入

    关于构造参数顺序

    通过定义文件的书写顺序,例如:

     1 public class User {
     2 
     3     private Integer age; 
     4 private String name;
     5 public User(Integer age , String name) {
     6 
     7         this.age = age;
     8 this.name = name;
     9 }
    10 }

    定义文件

    1 <bean id = "user" class = "com.feimao.DI.test.User">
    2 < construct-arg  value = "28"/>
    3 < construct-arg  value = "feimao"/>
    4 </bean>

    如果有两个相同的属性,通过index属性指定

    定义文件

    1 <bean id = "user" class = "com.feimao.DI.test.User">
    2  < construct-arg  value = "28" index = “0”/>
    3 < construct-arg  value = "feimao" index = “1”/>
    4 </bean>

    值属性

    可以直接使用<value> </value>元素或者value属性来设置基本类型和字符串

    推荐使用:

    1 <bean id = "user" class = "com.feimao.DI.test.User">
    2 < property name = “name” value = "feimao"/>
    3 < property  name = “age”  value = "28"/>
    4 </bean>

    依赖注入的属性设置

    空值null

    1 <bean id = "user" class = "com.feimao.DI.test.User">
    2 < property name = “name”>
    3   <null/>
    4 /property>
    5  </bean>

    如果是空字符串,写成这样<value></value>即可

    集合对象属性

    通过<list/>、<set/> <map/>及<props/>可以定义和设置与Java Collection集合类型对应的List、Set、Map及Properties的值

    List

    1 < property name = “someList”>
    2 <list>
    3      <value>a list element followed by a reference</value>
    4      <ref bean=”myDataSource”/>
    5 </list> 
    6 </property>

    Set

    1 < property name = “someSet”>
    2 <set>
    3      <value>just some string</value>
    4      <ref bean=”myDataSource”/>
    5 </set> 
    6 </property>

    Map

     1 < property name = “someMap”>
     2 <map>
     3     <entry>
     4         <key>
     5             <value>yup a entry</value>
     6         </key>
     7              <value> just some string </value>
     8      </entry>
     9 </map> 
    10 </property>

    Properties

    1 < property name = “adminEmails”>
    2 <props>
    3      <prop key=”administrator@somecompany.org”</prop>
    4      <prop key=”support@somecompany.org”</prop>
    5      <prop key=”development@somecompany.org”</prop>
    6 </props> 
    7 </property>
     
  • 相关阅读:
    手动编译安装nginx
    centoos 安装hadoop集群
    block中如何避免循环引用
    正则表达式
    iOS开发ARC内存管理
    block的内部实现
    Block存储区域
    block的语法
    Collection(数组、字典、集合)
    block捕获自动变量和对象
  • 原文地址:https://www.cnblogs.com/feimaoyuzhubaobao/p/10029845.html
Copyright © 2011-2022 走看看