zoukankan      html  css  js  c++  java
  • 五:bean

    一:    如何给集合类型注入值.

    java中主要的集合有几种: map set list / 数组

    Department类:

     1 public class Department {
     2 
     3     private String name;
     4     private String [] empName;
     5     private List<Employee> empList;
     6     private Set<Employee> empsets;
     7     private Map<String,Employee> empMaps;
     8     
     9     public Set<Employee> getEmpsets() {
    10         return empsets;
    11     }
    12     public void setEmpsets(Set<Employee> empsets) {
    13         this.empsets = empsets;
    14     }
    15     public String[] getEmpName() {
    16         return empName;
    17     }
    18     public void setEmpName(String[] empName) {
    19         this.empName = empName;
    20     }
    21     public String getName() {
    22         return name;
    23     }
    24     public void setName(String name) {
    25         this.name = name;
    26     }
    27     public List<Employee> getEmpList() {
    28         return empList;
    29     }
    30     public void setEmpList(List<Employee> empList) {
    31         this.empList = empList;
    32     }
    33     public Map<String, Employee> getEmpMaps() {
    34         return empMaps;
    35     }
    36     public void setEmpMaps(Map<String, Employee> empMaps) {
    37         this.empMaps = empMaps;
    38     }
    39 
    40 }

    //Employeel类

     1 public class Employee {
     2     private String name;
     3     private int id;
     4     public int getId() {
     5         return id;
     6     }
     7     public void setId(int id) {
     8         this.id = id;
     9     }
    10     public String getName() {
    11         return name;
    12     }
    13     public void setName(String name) {
    14         this.name = name;
    15     }
    16 }
    View Code

    beans.xml配置文件:

     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"
     4         xmlns:context="http://www.springframework.org/schema/context"
     5         xmlns:tx="http://www.springframework.org/schema/tx"
     6         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     7                 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
     8                 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
     9 
    10 <bean id="department" class="com.hsp.collection.Department">
    11 <property name="name" value="财务部"/>
    12 <!-- 给数组注入值 -->
    13 <property name="empName">
    14     <list>
    15         <value>小明</value>
    16         <value>小明小明</value>
    17         <value>小明小明小明小明</value>
    18     </list>
    19 </property>
    20 <!-- 给list注入值 list 中可以有相当的对象 -->
    21 <property name="empList">
    22     <list>
    23         <ref bean="emp2" />
    24         <ref bean="emp1"/>
    25         <ref bean="emp1"/>
    26         <ref bean="emp1"/>
    27         <ref bean="emp1"/>
    28         <ref bean="emp1"/>
    29         <ref bean="emp1"/>
    30     </list>
    31 </property>
    32 <!-- 给set注入值 set不能有相同的对象 -->
    33 <property name="empsets">
    34     <set>
    35         <ref bean="emp1" />
    36         <ref bean="emp2"/>
    37         <ref bean="emp2"/>
    38         <ref bean="emp2"/>
    39         <ref bean="emp2"/>
    40     </set>
    41 </property>
    42 <!-- 给map注入值 map只有key不一样,就可以装配value -->
    43 <property name="empMaps">
    44     <map>
    45         <entry key="11" value-ref="emp1" /> 
    46         <entry key="22" value-ref="emp2"/>
    47         <entry key="33" value-ref="emp1"/>
    48     </map>
    49 </property>
    50 <!-- 给属性集合配置 -->【点http协议 referer 】
    51 <property name="pp">
    52     <props>
    53         <prop key="pp1">abcd</prop>
    54         <prop key="pp2">hello</prop>
    55     </props>
    56 </property>
    57 </bean>
    58 <bean id="emp1" class="com.hsp.collection.Employee">
    59 <property name="name" value="北京"/>
    60 <property name="id" value="1"/>
    61 </bean>
    62 <bean id="emp2" class="com.hsp.collection.Employee">
    63 <property name="name" value="天津"/>
    64 <property name="id" value="2"/>
    65 </bean>
    66 </beans>
    View Code

    二: 内部bean

     1 <bean id=”foo” class=”....Foo”>
     2     <property name=”属性”>
     3     <!—第一方法引用-->
     4     <ref bean=’bean对象名’/>
     5     <!—内部bean-->
     6     <bean> 
     7     <properyt></property>
     8 </bean>
     9 </property>
    10 </bean>

    三: 继承配置

     1 public class Student 
     2 public class Gradate extends Student
     3 
     4 在beans.xml文件中体现配置 
     5 <!-- 配置一个学生对象 -->
     6 <bean id="student" class="com.hsp.inherit.Student">
     7     <property name="name" value="顺平" />
     8     <property name="age" value="30"/>
     9 </bean>
    10 <!-- 配置Grdate对象 -->
    11 <bean id="grdate" parent="student" class="com.hsp.inherit.Gradate">
    12     <!-- 如果自己配置属性name,age,则会替换从父对象继承的数据  -->
    13     <property name="name" value="小明"/>
    14     <property name="degree" value="学士"/>
    15 </bean>

     目前我们都是通过set方式给bean注入值,spring还提供其它的方式注入值,比如通过构造函数注入值!

    通过构造函数注入值

    1 beans.xml 关键代码:
    2 <!-- 配置一个雇员对象 -->
    3 <bean id="employee" class="com.hsp.constructor.Employee">
    4 <!-- 通过构造函数来注入属性值 -->    
    5 <constructor-arg index="0" type="java.lang.String" value="大明" />
    6 </bean>

     自动装配bean的属性值

     1 (1)    byName的用法:
     2 <!-- 配置一个master对象 -->
     3 <bean id="master" class="com.hsp.autowire.Master" autowire="byName">
     4 <property name="name">
     5 <value>顺平</value>
     6 </property>
     7 </bean>
     8 <!-- 配置dog对象 -->
     9 <bean id="dog" class="com.hsp.autowire.Dog">
    10 <property name="name" value="小黄"/>
    11 <property name="age" value="3"/>
    12 </bean>

    (1)    byType: byType:寻找和属性类型相同的bean,找不到,装不上,找到多个抛异常。

    (2)    constructor: autowire="constructor"

    说明 : 查找和bean的构造参数一致的一个或

          多个bean,若找不到或找到多个,抛异常。按照参数的类型装配 

    (4) autodetect

    说明 :  autowire="autodetect"

    (3)和(2)之间选一个方式。不确定

           性的处理与(3)和(2)一致。

    (5) defualt

    这个需要在<beans defualt-autorwire=“指定” />

    当你在<beans >指定了 default-atuowrite后, 所有的bean的 默认的autowire就是 指定的装配方法;

    如果没有在<beans defualt-autorwire=“指定” /> 没有  defualt-autorwire=“指定” ,则默认是

    defualt-autorwire=”no”

    (6) no: 不自动装配

  • 相关阅读:
    NexusFile(文件管理器)
    塔式、机架式、刀片式服务器的区别和特点
    使用dsoframer控件出现"Unable to display the inactive document. Click here to reactivate the document."的问题 .
    类型“Microsoft.Office.Interop.Word.ApplicationClass”错误 4317 无法嵌入互操作类型
    解决C#导出excel异常来自 HRESULT:0x800A03EC的方法 .
    c# winfrom 皮肤切换 控件 IrisSkin2.dll 使用
    巧用花生壳将局域网内的FTP和www服务器发布到互联网
    Windows Server 2003 动态网站IIS设置(图)
    NAT原理简介、各种 ADSL Modem 及路由器的端口映射方法
    UML用例图
  • 原文地址:https://www.cnblogs.com/feimo/p/3090521.html
Copyright © 2011-2022 走看看