首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Bean作用域的配置以及 Spring各种注入方式实例 list set 地图 props

2013-07-16 
Bean作用域的配置以及 Spring各种注入方式实例 list set map propsclasscom.lihui.MyDate scopeproto

Bean作用域的配置以及 Spring各种注入方式实例 list set map props
class="com.lihui.MyDate" scope="prototype"></bean>

?

2.各种注入方式

所有的注入方式在Spring.xml 文件中配置如下:

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans 3     xmlns="http://www.springframework.org/schema/beans" 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5     xmlns:p="http://www.springframework.org/schema/p" 6     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 7  8     <!-- 注入基本类型 --> 9     <bean id="person" class="com.lihui.Person">10         <property name="name" value="张三"></property>11         <property name="password" value="hello"></property>12         <property name="chock" value="true"></property>13     </bean>14     15     <!-- 注入list类型和数组类型-->16     <bean id="beansDemoClass" class="com.lihui.BeansDemoClass">17         <property name="fruit">18             <list>19                 <value>荔枝</value>20                 <value>桔子</value>21                 <value>樱桃</value>22             </list>23         </property>24         <property name="num">25             <list>26                 <value>20</value>27                 <value>45</value>28                 <value>12</value>29             </list>30         </property>31     </bean>32      33     <!-- 注入引用类型 -->34     <bean id="mydate" class="com.lihui.MyDate" scope="prototype">35         <property name="date" ref="refdate"></property>36     </bean>37     <bean id="refdate" class="java.util.Date" scope="prototype"></bean>38     39     <!-- 注入 set map props 类型 -->40     <bean id="gatherDemp" class="com.lihui.SetMapProps">41         <property name="scoreMap">42             <map>43                 <!-- map 必须是 key-value 对应的 -->44                 <entry key="Maths">45                     <value>98</value>46                 </entry>47                 <entry key="English">48                     <value>95</value>49                 </entry>50             </map>51         </property>52         <property name="properties">53             <!-- 定义 properties 属性 -->54             <props>55                 <!-- props 必须是 key-value 对应的 -->56                 <prop key="path">C:/MyDocument/MyMusic</prop>57                 <prop key="filename">lihui.txt</prop>58             </props>59         </property>60         <property name="settest">61             <set>62                 <!-- set元素,使用value、bean、ref 等指定系列值 -->63                 <value>set值</value>64             </set>65         </property>66     </bean>67 </beans>

?

(1)基本注入方式

person.java

 1 public class Person { 2     public String name; 3     public String password; 4     public boolean islogin; 5      6     public void setName(String name){ 7         this.name = name; 8     } 9     public void setPassword(String password){10         this.password = password;11     }12     public void setChock(boolean islogin){13         this.islogin = islogin;14     }15 }

调用方法:

1 public static void main(String[] args) {2         XmlBeanFactory bFactory = new XmlBeanFactory(new ClassPathResource(3                 "Spring.xml"));4         Person person = (Person) bFactory.getBean("person");5         System.out.println("姓名:" + person.name + "  密码:" + person.password6                 + "  状态:" + person.islogin);        7     }

(2)注入引用类型

MyDate.java

1 public class MyDate {2     private Date date;3     public void setDate(Date date){4         this.date = date;5     }6     public void getDate(){7         System.out.println(date);8     }9 }

应用举例:

 1 public static void main(String[] args) { 2         XmlBeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("Spring.xml")); 3         MyDate myDate = (MyDate)bFactory.getBean("mydate"); 4         myDate.getDate(); 5         try { 6             Thread.sleep(1000); 7         } catch (InterruptedException e) { 8             // TODO Auto-generated catch block 9             e.printStackTrace();10         }11         ((MyDate)bFactory.getBean("mydate")).getDate();                12     }

(3)注入list类型和数组类型

BeansDemoClass.java

 1 public class BeansDemoClass { 2     public List<String> fruit; 3     public int[] num; 4     public void setFruit(List<String> fruit){ 5         this.fruit = fruit; 6         for(String f : fruit){ 7             System.out.println(f); 8         } 9     }10     public void setNum(int[] num){11         this.num = num;12         for(int n : num){13             System.out.println(n);14         }15     }16 }

应用举例:

bDemoClass.num); 5 }

(4)注入set、map 及 props 类型
SetMapProps.java

 1 public class SetMapProps { 2     public Map scoreMap = new HashMap<String, String>(); 3     public Properties properties = new Properties(); 4     public Set settest = new HashSet<String>(); 5     public void setScoreMap(Map scoreMap){ 6         this.scoreMap = scoreMap; 7         System.out.println(this.scoreMap.get("English")); 8     } 9     public void setProperties(Properties properties){10         this.properties = properties;11         System.out.println(this.properties.get("path"));12         System.out.println(this.properties.get("filename"));13     }14     public void setSettest(Set settest){15         this.settest = settest;16         System.out.println(settest.toString());17     }18 }

应用:

1 public static void main(String[] args) {2         XmlBeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("Spring.xml"));3         SetMapProps beans = (SetMapProps) bFactory.getBean("gatherDemp");4                 5     }

热点排行