Spring(四)Spring的bean的配置

Posted on 2021-04-11 20:21  MissRong  阅读(129)  评论(0)    收藏  举报

Spring(四)Spring的bean的配置

1、id和class

    <bean id="man" class="com.icss.controller.Man"></bean>

id:有唯一约束

2、spring的声明周期

    <bean id="man" class="main.java.com.icss.testban.Man" init-method="init" destroy-method="end">

init-method 和 destory-method 在这里后面接的是Man类中的方法名

3、spring的作用域

 4、spring的属性注入

(1)构造方法赋值--constructor(name, value)

 public Man(String name) {
        this.name = name;

 }
   <bean id="man" class="com.icss.shuxing.Man">
        <constructor-arg name="name" value="张三"></constructor-arg>
    </bean>

(2)set方法赋值--property(name, value / ref)

    public void setName(String name) {
        this.name = name;
    }
    public void setWomen(Women women) {
        this.women = women;
    }
 <bean id="women" class="main.java.com.icss.shuxing.Women"></bean>
 <bean id="man" class="com.icss.shuxing.Man">
        <property name="name" value="张三123"></property>
        <property name="women" ref="women"></property>
    </bean>

注:如果在一个类中属性是引用类型的话,要使用ref代替value,比如这里的women,这样ref就会指向引用的bean的id名称.

(3)p标签属性注入(加依赖、bean中的p)

普通属性:p:属性名 = "值"

对象属性:p:属性名-ref = "值"

注意 需要在.xml文件的bean标签中加入依赖: xmlns:p="http://www.springframework.org/schema/p"

然后配置bean的信息:  <bean id="man" class="com.icss.shuxing.Man" p:name="啥地方" p:women-ref="women">

(4)SPEL属性注入--proprty( name,  value = "#{属性值}" )

   <bean id="man" class="com.icss.shuxing.Man">
        <property name="name" value="#{'Man'}"></property>
        <property name="age" value="#{30}"></property>
        <property name="women" value="#{women}"></property>
    </bean>

注意:SPEL的话引用对象如果是其他对象也要使用value, 而不是ref

properties赋值, 符号使用的是$。

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="test.properties"></property>
    </bean>

(5)集合类型的属性注入--property、list / set / map、(value 或 ref) / entry,(value 或 ref)

    private Integer num[];
    private List<String> list;
    private Set<String> set;
    private Map<String, String> map;

    public void setList(List<String> list) {
        this.list = list;
    }
    public void setSet(Set<String> set) {
        this.set = set;
    }
    public void setMap(Map<String, String> map) {
        this.map = map;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setNum(Integer[] num) {
        this.num = num;
    }

.xml文件  在<bean></bean>中间写入:

<property name="num">
           <list>
              <value>1</value>
               <value>2</value>
               <value>3</value>
<!--其他对象用: <ref></ref> -->
</list> </property> <property name="list"> <list> <value>11</value> <value>21</value> <value>31</value>
<!--<ref></ref>-->
</list> </property> <property name="set"> <set> <value>11</value> <value>21</value> <value>31</value>
<!--<ref></ref>-->
</set> </property> <property name="map"> <map> <entry key="name" value="大连"></entry> <entry key="hobby" value="玩游戏"></entry> <entry key="sex" value="男"></entry>
<!--<entry key="" ref=""></entry>-->
</map> </property>

(6)注解

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3