zoukankan      html  css  js  c++  java
  • spring_05装配bean

    一.前言

     <bean id="user1" scope="singleton" init-method="myInit" destroy-method="myDestory" class="com.ahd.domain.User">

      1.id作用设置对象名,scope为作用域,class是相关bean的完整路径.

      2.使用原型bean会对性能产生影响,尽量不要设置成prototype,除非有必要,尽量使用scope=”singleton”

      3.init-method和destroy-method为定制方法,前者为定制初始化bean的方法,后者为定制销毁bean及其他需要关闭对象的方法

      4.定制方法也可以通过注解的方式配置

      5.不推荐使用接口,使用接口后bean和springAPI绑定了

      6.如果要把bean的属性设置成空,可以设置成<null/>

    
    

    二.bean的作用域

      

    三.如何给集合对象注入值(map,list,set,数组)?

      1.list和数组类似:

            <property name="namelist">
                <list>
                    <value>北京</value>
                    <value>上海</value>
                    <value>天津</value>
                </list>
            </property>
         <!--value元素改成ref即可引用其他bean对象   -->
          <property name="userlist">
                <list>
                    <ref bean="user1"/>
                    <ref bean="user2"/>
                </list>
          </property>
                   

      

      java测试遍历代码:

        //遍历list<String>
            for(String s:cu.getNamelist()){
                System.out.println(s);
            }
            //遍历list<User>
            System.out.println();
            for(User user:cu.getUserlist()){
                System.out.println(user.getId()+user.getName());
                System.out.println(user);
            }

      2.配置set,set无序不重复,配置代码beans:

         <property name="userset">
                <set>
                    <ref bean="user1"/>
                    <ref bean="user2"/>
                </set>
            </property>

      

      java测试遍历代码:

            //遍历set
            for(User user:cu.getUserset()){
                System.out.println("set"+user.getId()+user.getName());
            }

      3.配置map,

            <property name="usermaps">
                <map>
                    <entry key="111" value-ref="user1"/>
                    <entry key="222" value-ref="user2"/>
                </map>
            </property>

      

      java测试遍历代码:

            //遍历map,方式一
            Map<String,User> map=cu.getUsermaps();
            for(String key:map.keySet()){
                System.out.println(key+map.get(key)+"user:"+map.get(key).getId());
            }
            //遍历map,方式二(使用迭代器)
            Iterator<Map.Entry<String,User>> it=map.entrySet().iterator();
            while(it.hasNext()){
                Map.Entry<String, User> entry=it.next();
                System.out.println("key:"+entry.getKey()+"  value:"+entry.getValue());
            }
            
            //遍历map,方式三,适合数据量特别大的时候
            for(Map.Entry<String, User> entry:map.entrySet()){
                System.out.println(entry.getKey()+entry.getValue());
            }
            
            //遍历map,方式四,只能遍历value,不能遍历key
            for(User user:map.values()){
                System.out.println(user);
            }
            

      4.给属性集合配值:

         <property name="userpro">
                <props>
                    <prop key="user">password</prop>
                    <prop key="user1">password1</prop>
                </props>
            </property>

      

      测试代码

         Properties prop=cu.getUserpro();
            Enumeration<Object> keys = prop.keys();
            while(keys.hasMoreElements()){
                String key=keys.nextElement().toString();
                System.out.println(key+" "+prop.getProperty(key));
            }

      

    四.内部bean,

      内部bean不能被其他对象所引用,只能供父bean使用

      <bean id="user1" class="com.ahd.domain.User">
            <property name="name">
                <bean id="user3" class="com.ahd.domain.Use">
                    <property name="id" value="2" />
                    <property name="name" value="李四" />
                </bean>
            </property>
        </bean>

    五.继承 

        <bean id="check3"   parent="validateUser"    class="com.ahd.serviceImpl.CheckUser3">
            <property name="phone">
                <value>13548965896</value>
            </property>
        </bean>

      

      

      CheckUser3 类.
    package com.ahd.serviceImpl;
    
    import com.ahd.service.ValidateUser;
    
    public class CheckUser3 extends CheckUser1{
        private String phone;
        public CheckUser3(){
                
        }
        public String getPhone() {
            return phone;
        }
        public void setPhone(String phone) {
            this.phone = phone;
        }    
        
    }
  • 相关阅读:
    UVa 1354 天平难题 (枚举二叉树)
    广西邀请赛总结
    UVa 12118 检查员的难题 (dfs判连通, 构造欧拉通路)
    UVA
    Uva 127 "Accordian" Patience (模拟)
    UVA 10539 Almost Prime Numbers( 素数因子)
    HDU 1272 小希的迷宫(并查集)
    HDU 1213 How Many Tables (并查集)
    POJ 2236 Wireless Network(并查集)
    HDU 1233 还是畅通工程 ( Kruskal或Prim)
  • 原文地址:https://www.cnblogs.com/aihuadung/p/10361624.html
Copyright © 2011-2022 走看看