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;
        }    
        
    }
  • 相关阅读:
    Java工具类——UUIDUtils
    Python中的split()函数的用法
    学习笔记
    hdu 1558 线段相交+并查集
    hdu 4609 FFT
    hdu1402 FFT入门
    多项式乘法快速算法
    FFT
    GDUT校赛
    light oj 1236 分解质因数
  • 原文地址:https://www.cnblogs.com/aihuadung/p/10361624.html
Copyright © 2011-2022 走看看