`

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

 
阅读更多

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

1.Bean有两种作用域属性,singletonprototype ,默认为前者。对于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     }
分享到:
评论

相关推荐

    spring bean的生命周期

    - **属性注入**:Spring会将依赖注入到Bean中,包括值注入(value,ref)和集合注入(list,map,props,set)。 - **初始化回调**:Spring支持两种类型的初始化回调方法,即`@PostConstruct`注解的方法和在XML中...

    Spring的Bean配置说明

    - **`&lt;list&gt;`、`&lt;set&gt;`、`&lt;map&gt;`和`&lt;props&gt;`元素**:分别用于设置不同类型集合的属性值。 #### 四、示例与实践 通过上述介绍,我们可以了解到Spring的Bean配置提供了丰富的特性和灵活性。在实际项目开发中,合理...

    day38 14-Spring的Bean的属性的注入:集合属性的注入

    在本主题“day38 14-Spring的Bean的属性的注入:集合属性的注入”中,我们将深入探讨如何向Bean注入集合类型的属性,如List、Set、Map等。这在实际开发中非常常见,因为很多情况下我们需要处理一组相关的数据。 ...

    spring bean 属性总结

    - **&lt;list&gt;/&lt;map&gt;/&lt;set&gt;/&lt;props&gt;`元素**:用于配置集合类型属性,如List、Map、Set和Properties。 #### 总结 Spring的`&lt;beans&gt;`和`&lt;bean&gt;`元素及其属性提供了强大的配置能力,使开发者能够灵活地定义、配置和管理...

    Spring Bean的属性注入方式

    "Spring Bean的属性注入方式" Spring Bean的属性注入...Spring Bean的属性注入方式提供了多种方式来将属性值注入到Bean实例中,包括构造器注入、Setter方法注入、集合属性注入等。这使得Bean的配置更加灵活和可维护。

    Spring对集合的装配(各种集合类型的属性的注入方式)

    在Spring的XML配置文件中,可以使用`&lt;list&gt;`, `&lt;set&gt;`, `&lt;map&gt;`和`&lt;props&gt;`元素来指定集合的元素。例如,要注入一个List,可以这样写: ```xml &lt;bean id="myBean" class="com.example.MyBean"&gt; &lt;list&gt; ...

    SSHnote_Spring基本配置

    Spring提供了多种方式来配置这些集合,如`&lt;list&gt;`、`&lt;set&gt;`、`&lt;map&gt;`和`&lt;props&gt;`元素。例如,你可以这样配置一个包含多个bean的列表:`&lt;list&gt;&lt;ref bean="bean1"/&gt;&lt;ref bean="bean2"/&gt;&lt;/list&gt;`。 Properties属性处理...

    spring数据源配置

    Spring框架支持多种数据源的配置方式,包括但不限于基于XML的配置、基于注解的配置以及基于Java配置的方式。本文主要关注基于XML的配置方法。 #### 三、XML配置详解 ##### 1. 数据源配置 数据源的配置通常涉及到...

    Springtest.rar

    本压缩包"Springtest.rar"显然是一个关于Spring框架IOC特性的实践练习,涵盖了多个关键概念,如属性注入、构造方法注入、集合属性处理、Bean的作用域以及表达式语言(SpEL)、P命名空间和C命名空间的使用。...

    Spring中的参数注入.pdf

    针对不同类型集合,Spring提供了不同的XML元素,如&lt;list/&gt;、&lt;set/&gt;、&lt;map/&gt;以及&lt;props/&gt;。 #### 3.1 list元素注入 &lt;list/&gt;元素用于注入List类型的集合数据。例如: ```xml &lt;bean id="rose" class=...

    基于Spring2.0的Collection配置使用例子

    在Spring框架中,集合配置是将Java集合对象如List、Set、Map等与Spring的IoC容器紧密结合的关键特性。在Spring 2.0版本中,这个功能已经相当成熟且广泛使用,使得开发者能够方便地管理和注入这些集合类型的依赖。本...

    一步步实现Spring框架(二)XML注入

    在Spring框架中,XML注入是实现依赖注入(Dependency Injection,DI)的一种常见方式,它允许开发者通过XML配置文件来声明对象及其依赖关系。本篇将深入讲解如何一步步实现Spring框架中的XML注入,涵盖Bean的创建、...

    spring框架配置bean的高级属性

    在Spring框架中配置Bean是进行依赖注入的基础操作,而深入理解如何高效地配置Bean及其属性对于提高开发效率、优化项目结构具有重要意义。本文将详细解读标题“spring框架配置bean的高级属性”以及描述中的内容,并...

    spring事务配置的五种方式

    ### Spring事务配置的五种方式详解 #### 一、引言 在企业级应用开发中,事务处理是非常重要的一部分,特别是在涉及多个数据库操作时。Spring框架提供了强大的事务管理功能,支持编程式和声明式两种事务处理方式。...

    Spring配置的5种方式

    ### Spring配置的5种方式详解 #### 一、引言 在Java开发领域,特别是针对企业级应用,Spring框架作为一款轻量级的容器管理工具,不仅提供了强大的依赖注入功能,还支持多种事务管理策略。Struts2+Spring+Hibernate...

    spring 配置文件 归类

    在Spring框架中,配置文件是核心组成部分,它们用于定义bean的定义、依赖关系以及各种配置信息。本篇文章将深入探讨Spring配置文件中的归类,主要包括IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented ...

    spring应用

    3. **注入集合类型数据**:Spring支持多种集合类型的注入,包括List、Set、Map和Properties等。 - **List集合**:可以通过`&lt;list&gt;`标签来定义一个列表,并使用`&lt;value&gt;`或`&lt;ref&gt;`元素来填充列表中的元素。 - **Set...

    Spring配置文件详解1

    此外,对于集合类型的属性,如`list`、`set`、`map`和`props`,Spring提供了专门的配置元素来填充这些集合。 在切面配置方面,Spring提供了AOP(面向切面编程)支持,可以用来实现如日志记录、事务管理等功能。在...

    spring.pdf java开发必学

    - **集合类型注入**:如List、Set、Map、Properties等,可以在XML配置中使用对应的标签(`&lt;list&gt;`、`&lt;set&gt;`、`&lt;map&gt;`、`&lt;props&gt;`)进行注入,提供多个值或引用其他Bean。 - **引用其他Bean**:通过`ref`属性,可以...

Global site tag (gtag.js) - Google Analytics