zoukankan      html  css  js  c++  java
  • day38 15-Spring的配置文件引入的问题

    配置文件内容过多修改起来维护起来很麻烦。Struts 2可以在总的配置文件中引入其他的配置文件。这是一种办法。第二种办法在加载配置文件的时候,里面可以一次性传多个。

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 别去schema,schema是文件,本地的文件,你得引那个头 -->
    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
            <!-- demo6Bean的集合属性的注入 ==============================================================-->
         
            <bean id="collectionBean" class="cn.itcast.spring3.demo6.CollectionBean">
           
                <!-- 注入List集合 -->
                
               <property name="list">
                   <list>
                   <value>童童</value>
                   <value>小凤</value>
                   </list>
               </property>
          
               <!-- 注入set集合 -->
              
               <property name="set">
                     <set>
                        <value>杜宏</value>
                        <value>如花</value>      
                     </set>
               </property>
             
               <!-- 注入map集合 -->
            
              <property name="map">
              
              <map>
                 <entry key="刚刚" value="111"></entry>
                 <entry key="娇娇" value="333"></entry>
                            
              </map>
              
              </property>
              <property name="properties">
              <props>
                  <prop key="username">root</prop>
                 
                  <!-- prop有key和value的形式,属性文件就是key和value的形式 -->
               
                  <prop key="password">123</prop>   
              </props>
              </property>
     
              
            </bean>
                   
                 
    </beans>
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 别去schema,schema是文件,本地的文件,你得引那个头 -->
    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- demo1快速入门================================================= -->
    <!-- 把接口和实现类在这个配置文件中配置,有了实现类的全路径之后到时候才能用工厂反射 -->
       
       <!-- 通过一个<bean>标签来设置类的信息,通过id属性为类起个标识. -->
        <!-- 接口,实现类,配置文件也都有了 -->
        <!-- 现在有一个工厂Spring为我们提供好了,其实就是解析这个XML文件 -->
        <!-- 这个工厂你自己写会不会写?你用dom4j找里面的bean标签,找到class的属性值,然后就可以Class.forName()反射生成类的实例.其实Spring
             也是这么做的,只不过工厂由Spring提供好了
         -->
        <bean id="helloService" class="cn.itcast.spring3.demo1.HelloServiceImpl">
             <!-- 使用<property>标签注入属性 
             value指的是普通值
             ref指的是对象
             -->
        <property name="info"  value="传智播客"></property>
        </bean>
        <!-- demo1快速入门 -->
        <!-- demo2Bean的实例化 -->
        <!-- 默认情况下使用的就是无参数的构造方法. -->
        <!-- 
        <bean id="bean1" class="cn.itcast.spring3.demo2.Bean1"></bean>
        -->
        <!-- 
        <bean name="bean1" class="cn.itcast.spring3.demo2.Bean1"></bean>
        -->
        <!-- 第二种使用静态工厂实例化 不能写class了,因为现在不是由Spring直接帮你创建对象了-->
        <!--  
        <bean id="bean2" class="cn.itcast.spring3.demo2.Bean2Factory" factory-method="getBean2"></bean>
        -->
        <!-- 第三种使用实例工厂实例化 -->
        <!-- 
        <bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"></bean>
        -->
        <!-- 要先把Bean3Factory实例化 -->
        <!--  
        <bean id="bean3Factory" class="cn.itcast.spring3.demo2.Bean3Factory"></bean>
        -->
        <!-- demo2Bean的实例化======================  end-->
        
        <!-- demo3Bean的作用范围======================= -->
        <!--  
        <bean id="customer" class="cn.itcast.spring3.demo3.Customer" scope="prototype"></bean>
        -->
        <!-- 
        <bean id="product" class="cn.itcast.spring3.demo3.Product" init-method="setup" destroy-method="teardown" scope="singleton">
           <property name="name" value="空调">-->
           <!-- 把Product类的属性name注入进来 -->
           <!-- 
           </property>
        </bean>    
     -->
    
           <!-- demo4Bean的生命周期======================= -->
           <!--  
           <bean id="customerService" class="cn.itcast.spring3.demo4.CustomerServiceImpl" init-method="setup"  destroy-method="teardown">
           
              <property name="name" value="itcast"></property>
           </bean>
           -->
           <!-- 后处理Bean是由Spring容器自动调用不用你管,我们起个id是为了我们在程序中去获得它。但是这个类不用由我们获得, 由Spring自动调用。cn.itcast.spring3.demo4.MyBeanPostProcessor是后处理Bean-->
            <!-- <bean class="cn.itcast.spring3.demo4.MyBeanPostProcessor"></bean>-->
           <!-- demo5Bean的属性注入=====================================================================================================================================-->
           <!-- 构造方法的注入 -->
           <bean id="car" class="cn.itcast.spring3.demo5.Car">
            <constructor-arg name="name" value="宝马"><!-- 通过这个标签为类注入属性 -->
            </constructor-arg>
            <constructor-arg name="price" value="1000000"><!-- 通过这个标签为类注入属性 -->
            </constructor-arg>
            <!--  
            <constructor-arg index="0" type="java.lang.String" value="奔驰">--><!-- 通过这个标签为类注入属性 -->
            <!-- </constructor-arg>-->
            <!--  
            <constructor-arg index="1" type="java.lang.Double" value="2000000">--><!-- 通过这个标签为类注入属性 -->     
           
           <!-- </constructor-arg>-->
           </bean>
           <!--  
           <bean id="car2" class="cn.itcast.spring3.demo5.Car2">
           -->
           <!-- <property>标签中name就是属性名称,value是普通属性的值,
           ref:引用其他的对象 
           -->
           <!--  
           <property name="name" value="保时捷奇瑞QQ"></property>
           <property name="price" value="500000020000"></property>
           </bean>
           -->
           <!--  p名称空间的写法
           <bean id="car2" class="cn.itcast.spring3.demo5.Car2" p:name="宝马" p:price="400000">
           </bean>
           -->
           <!-- SpEL写法 -->
           <bean id="car2" class="cn.itcast.spring3.demo5.Car2" >
           <property name="name" value="#{'大众'}"></property>
           <property name="price" value="#{'120000'}"></property>
           </bean>
           
           
           
           <!--         
           <bean id="person" class="cn.itcast.spring3.demo5.Person">
               <property name="name" value="任童"></property>
               <property name="car2" ref="car2"></property>
           </bean>
           -->
           
           <!-- p名称空间的写法 -->
           <!-- 
           <bean id="person" class="cn.itcast.spring3.demo5.Person" p:name="童童" p:car2-ref="car2">
           </bean>
           -->
           <!-- SpEL写法 -->
           <bean id="person" class="cn.itcast.spring3.demo5.Person">
           <!--  
               <property name="name" value="#{'小边'}"></property>
               -->
               <!--  
               <property name="name" value="#{personInfo.name}"></property>
               -->
               <property name="name" value="#{personInfo.showName()}"></property>
               <property name="car2" value="#{car2}"></property>
           
           
           </bean>
           
           <!--             
           <property name="name" value="任童"></property>
               <property name="car2" ref="car2"></property>
           -->
            <bean id="personInfo" class="cn.itcast.spring3.demo5.PersonInfo">
            <property name="name" value="张三"></property>
        
            </bean>
            <!-- demo5Bean的属性的注入============================================================== -->
            <!-- demo6Bean的集合属性的注入 ==============================================================-->
            <!--  
            <bean id="collectionBean" class="cn.itcast.spring3.demo6.CollectionBean">
            -->
                <!-- 注入List集合 -->
                <!--  
               <property name="list">
                   <list>
                   <value>童童</value>
                   <value>小凤</value>
                   </list>
               </property>
               -->
               <!-- 注入set集合 -->
               <!--  
               <property name="set">
                     <set>
                        <value>杜宏</value>
                        <value>如花</value>      
                     </set>
               </property>
               -->
               <!-- 注入map集合 -->
               <!--  
              <property name="map">
              
              <map>
                 <entry key="刚刚" value="111"></entry>
                 <entry key="娇娇" value="333"></entry>
                            
              </map>
              
              </property>
              <property name="properties">
              <props>
                  <prop key="username">root</prop>
                  -->
                  <!-- prop有key和value的形式,属性文件就是key和value的形式 -->
                  <!--  
                  <prop key="password">123</prop>   
              </props>
              </property>
            </bean>
            -->
         
                     <import resource="applicationContext2.xml"/>
                  
                     <!-- 配置文件引入 -->
    </beans>
    package cn.itcast.spring3.demo6;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class SpringTest6 {
    @Test
    public void demo1(){//注入list
        //ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml","applicationContext2.xml");
        CollectionBean collectionBean = (CollectionBean) applicationContext.getBean("collectionBean");
        
        System.out.println(collectionBean);
        
    }
    }
  • 相关阅读:
    Mac上的USB存储设备使用痕迹在新版操作系统有所变化
    Beware of the encrypted VM
    A barrier for Mobile Forensics
    Second Space could let suspect play two different roles easily
    Take advantage of Checkra1n to Jailbreak iDevice for App analysis
    Find out "Who" and "Where"
    Where is the clone one and how to extract it?
    Downgrade extraction on phones running Android 7/8/9
    高版本安卓手机的取证未来
    How to extract WeChat chat messages from a smartphone running Android 7.x or above
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/6726363.html
Copyright © 2011-2022 走看看