zoukankan      html  css  js  c++  java
  • Spring学习类的配置(一)

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <beans xmlns="http://www.springframework.org/schema/beans"
      3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
      4     xmlns:context="http://www.springframework.org/schema/context"
      5     xmlns:tx="http://www.springframework.org/schema/tx"
      6     xmlns:p="http://www.springframework.org/schema/p"
      7     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
      8         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
      9         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
     10 
     11     <!-- 属性注入 通过set方法注入 -->
     12     <bean id="helloWorld" class="com.spring.helloworld.HelloWorld">
     13         <property name="name" value="applicationContext_Spring"></property>
     14     </bean>
     15     <!-- 构造器 要求bean中有对应的构造器(无参构造) -->
     16     <bean id="car" class="com.spring.helloworld.Car">
     17         <constructor-arg value="audo"></constructor-arg>
     18         <constructor-arg>
     19             <value><![CDATA[<ATARZA>]]></value>
     20         </constructor-arg>
     21         <constructor-arg value="200"></constructor-arg>
     22         <constructor-arg value="200"></constructor-arg>
     23     </bean>
     24     <!-- 注入 -->
     25     <bean id="car2" class="com.spring.helloworld.Car">
     26         <property name="name" value="car2Name"></property>
     27         <property name="brand" value="car2Brand"></property>
     28         <property name="price" value="1"></property>
     29         <property name="speed" value="100000"></property>
     30     </bean>
     31 
     32     <!-- 引用 ref -->
     33     <bean id="person" class="com.spring.helloworld.Person">
     34         <property name="name" value="jack"></property>
     35         <property name="age" value="11"></property>
     36         <property name="car" ref="car"></property>
     37     </bean>
     38 
     39     <!-- 集合属性 list -->
     40     <bean id="personListCar" class="com.spring.helloworld.PersonListCar">
     41         <property name="name" value="jack"></property>
     42         <property name="age" value="12"></property>
     43         <property name="cars" ref="cars">
     44             <list>
     45                 <ref bean="car" />
     46                 <ref bean="car2" />
     47             </list>
     48         </property>
     49     </bean>
     50 
     51     <!-- 集合属性map -->
     52     <bean id="personMapCar" class="com.spring.helloworld.PersonMapCar">
     53         <property name="name" value="toms"></property>
     54         <property name="age" value="18"></property>
     55         <property name="cars">
     56             <map>
     57                 <entry key="aaa" value-ref="car"></entry>
     58                 <entry key="bbb" value-ref="car2"></entry>
     59             </map>
     60         </property>
     61     </bean>
     62 
     63     <!-- properties map的子类 -->
     64     <bean id="DataSource" class="com.spring.helloworld.DataSource">
     65         <property name="properties">
     66             <props>
     67                 <prop key="user">root</prop>
     68                 <prop key="password">123456</prop>
     69                 <prop key="jdbcurl">jdbc:mysql:///test</prop>
     70                 <prop key="driverClass">com.mysql.jdbc.Driver</prop>
     71             </props>
     72         </property>
     73     </bean>
     74 
     75     <!-- 配置单例的集合bean 以供多个bean引用 -->
     76     <util:list id="cars">
     77         <ref bean="car" />
     78         <ref bean="car2" />
     79     </util:list>
     80 
     81     <!-- 通过P命名空间为bean的属性配置 -->
     82     <bean id="personP" class="com.spring.helloworld.Person" p:age="20"
     83         p:name="pPerson">
     84     </bean>
     85 
     86 
     87     <bean id="address" class="com.spring.autowire.Address" p:city="beijign"
     88         p:street="lishuiqiao">
     89     </bean>
     90 
     91     <bean id="car" class="com.spring.autowire.Car" p:name="mazida"
     92         p:price="123">
     93     </bean>
     94     <bean id="car2" class="com.spring.autowire.Car" p:name="mazida"
     95         p:price="123">
     96     </bean>
     97 
     98 
     99     <bean id="person" class="com.spring.autowire.Person" p:name="tom"
    100         p:address-ref="address" p:car-ref="car">
    101     </bean>
    102     <!-- 通过名字自动装配 根据bean的名字和当前bean的setter 风格的属性名进行自动装配 -->
    103     <bean id="person" class="com.spring.autowire.Person" p:name="tom"
    104         autowire="byName">
    105     </bean>
    106     <!-- Person [name=tom, address=null, car=null] -->
    107 
    108     <!-- 根据类型匹配 根据bean的类型和当前bean的属性类型进行自动装配 -->
    109     <!-- 配置多个类型: [com.spring.autowire.Car] is defined: expected single matching 
    110         bean but found 2: car,car2 -->
    111     <bean id="person" class="com.spring.autowire.Person" p:name="tom"
    112         autowire="byType">
    113     </bean>
    114 
    115     <!-- 生命周期 -->
    116     <bean id="car" class="com.spring.cycle.Car" init-method="init"
    117         destroy-method="destory">
    118         <property name="brand" value="audi"></property>
    119     </bean>
    120 
    121     <!-- 通过静态工厂方法配置bean 注意不是配置静态工厂方法实例,而是配置bean实例 class 工厂方法的全类名 factory-method 
    122         静态工厂的方法名 constructor-arg 静态工厂的参数 -->
    123     <bean id="car1" class="com.spring.factory.staticCarFactory"
    124         factory-method="getCar">
    125         <constructor-arg value="audi"></constructor-arg>
    126     </bean>
    127     <!-- 配置工厂的实例 -->
    128     <bean id="carFactory" class="com.spring.factory.InstanceCarFactory">
    129     </bean>
    130     <bean id="car2" factory-bean="carFactory" factory-method="getCar">
    131         <constructor-arg value="audi"></constructor-arg>
    132     </bean>
    133 
    134     <!-- 使用bean的scope属性来配置bean的范围 singleton:默认值,使用单例工厂模式(每次得到的都是同一个对象,用==作比较返回true) 
    135         prototype:原型的。容器初始化是不创建bean的实例。在每次请求是都创建一个新的bean实例,并返回 -->
    136 
    137     <bean id="address" class="com.spring.scope.Address" p:city="beijing"
    138         p:street="lishuiqiao" scope="singleton">
    139     </bean>
    140 
    141     <!-- 抽象bean:bean的abstract属性为true ,这样的bean不能被IOC容器实例化,只能用来被继承 若某一个bean的class属性没有制定,则该bean必须是一个抽象bean -->
    142     <bean id="address" p:city="beijign" p:street="lishuiqiao"
    143         abstract="true"></bean>
    144 
    145     <!-- bean的继承 使用bean的parent 属性指定继承 -->
    146 
    147     <bean id="address2" class="com.spring.autowire.Address" p:street="dongzhimen"
    148         parent="address">
    149     </bean>
    150     <bean id="car" class="com.spring.autowire.Car" p:name="carName"
    151         p:price="123">
    152     </bean>
    153 
    154     <!-- bean的依赖,创建一个bean依赖于car这个bean -->
    155     <bean id="person" class="com.spring.autowire.Person" p:name="jack"
    156         p:address-ref="address2" depends-on="car">
    157     </bean>
    158 
    159     <bean id="address" class="com.spring.spel.Address" p:city="beijign"
    160         p:street="lishuiqiao">
    161     </bean>
    162 
    163     <bean id="car" class="com.spring.spel.Car" p:name="mazida"
    164         p:price="123">
    165         <!-- 使用spel引用类的属性的静态方法 -->
    166         <property name="tyrePerimeter" value="#{T(java.lang.Math).PI * 80}"></property>
    167     </bean>
    168 
    169     <bean id="person" class="com.spring.spel.Person">
    170         <property name="car" value="#{car}"></property>
    171         <property name="name" value="tom"></property>
    172         <!-- 使用spel 应用其他bean的属性 -->
    173         <property name="city" value="#{address.city}"></property>
    174         <!-- 使用spel 应用运算符 -->
    175         <property name="info" value="#{car.price>30000?'白领':'金陵'}"></property>
    176 
    177     </bean>
    178 
    179 </beans>
  • 相关阅读:
    纠结我一上午的asp.net操作mysql问题
    C#术语【转自MSDN】
    asp.net新手必知必会——我们为什么要用asp.net
    图片在浏览器中底部对齐———解决方法之一
    asp.net做的网站比asp做的站慢?
    我是一个可悲的程序员
    今天离开职场去过自己的潇洒人生
    asp.net应用程序重新启动
    asp.net分页解决方法
    80. 删除有序数组中的重复项 II
  • 原文地址:https://www.cnblogs.com/duyunchao-2261/p/7490921.html
Copyright © 2011-2022 走看看