Bean作用域的配置以及 Spring各种注入方式实例 list set map props
本文内容纲要:Bean作用域的配置以及 Spring各种注入方式实例 list set map props
1.Bean有两种作用域属性,singleton 和 prototype ,默认为前者。对于singleton,当请求的 Bean 相同时,则不再重新生成新的实例化对象,通常应用程序中的组多组件都只需要一个实例就足够了。而 prototype ,用于每次返回 Bean 的一个新的实例,例如需要获取系统实时时间。
<bean id="mydate" 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.password
6 + " 状态:" + 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 }
应用举例:
1 public static void main(String[] args) {2 XmlBeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("Spring.xml"));
3 BeansDemoClass bDemoClass = (BeansDemoClass)bFactory.getBean("beansDemoClass");
4 System.out.println(bDemoClass.fruit + " " + 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 }
本文内容总结:Bean作用域的配置以及 Spring各种注入方式实例 list set map props
原文链接:https://www.cnblogs.com/lihuiyy/archive/2012/05/22/2512951.html
以上是 Bean作用域的配置以及 Spring各种注入方式实例 list set map props 的全部内容, 来源链接: utcz.com/z/362395.html