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 }
相关推荐
- **属性注入**:Spring会将依赖注入到Bean中,包括值注入(value,ref)和集合注入(list,map,props,set)。 - **初始化回调**:Spring支持两种类型的初始化回调方法,即`@PostConstruct`注解的方法和在XML中...
- **`<list>`、`<set>`、`<map>`和`<props>`元素**:分别用于设置不同类型集合的属性值。 #### 四、示例与实践 通过上述介绍,我们可以了解到Spring的Bean配置提供了丰富的特性和灵活性。在实际项目开发中,合理...
在本主题“day38 14-Spring的Bean的属性的注入:集合属性的注入”中,我们将深入探讨如何向Bean注入集合类型的属性,如List、Set、Map等。这在实际开发中非常常见,因为很多情况下我们需要处理一组相关的数据。 ...
- **<list>/<map>/<set>/<props>`元素**:用于配置集合类型属性,如List、Map、Set和Properties。 #### 总结 Spring的`<beans>`和`<bean>`元素及其属性提供了强大的配置能力,使开发者能够灵活地定义、配置和管理...
"Spring Bean的属性注入方式" Spring Bean的属性注入...Spring Bean的属性注入方式提供了多种方式来将属性值注入到Bean实例中,包括构造器注入、Setter方法注入、集合属性注入等。这使得Bean的配置更加灵活和可维护。
在Spring的XML配置文件中,可以使用`<list>`, `<set>`, `<map>`和`<props>`元素来指定集合的元素。例如,要注入一个List,可以这样写: ```xml <bean id="myBean" class="com.example.MyBean"> <list> ...
Spring提供了多种方式来配置这些集合,如`<list>`、`<set>`、`<map>`和`<props>`元素。例如,你可以这样配置一个包含多个bean的列表:`<list><ref bean="bean1"/><ref bean="bean2"/></list>`。 Properties属性处理...
Spring框架支持多种数据源的配置方式,包括但不限于基于XML的配置、基于注解的配置以及基于Java配置的方式。本文主要关注基于XML的配置方法。 #### 三、XML配置详解 ##### 1. 数据源配置 数据源的配置通常涉及到...
本压缩包"Springtest.rar"显然是一个关于Spring框架IOC特性的实践练习,涵盖了多个关键概念,如属性注入、构造方法注入、集合属性处理、Bean的作用域以及表达式语言(SpEL)、P命名空间和C命名空间的使用。...
针对不同类型集合,Spring提供了不同的XML元素,如<list/>、<set/>、<map/>以及<props/>。 #### 3.1 list元素注入 <list/>元素用于注入List类型的集合数据。例如: ```xml <bean id="rose" class=...
在Spring框架中,集合配置是将Java集合对象如List、Set、Map等与Spring的IoC容器紧密结合的关键特性。在Spring 2.0版本中,这个功能已经相当成熟且广泛使用,使得开发者能够方便地管理和注入这些集合类型的依赖。本...
在Spring框架中,XML注入是实现依赖注入(Dependency Injection,DI)的一种常见方式,它允许开发者通过XML配置文件来声明对象及其依赖关系。本篇将深入讲解如何一步步实现Spring框架中的XML注入,涵盖Bean的创建、...
在Spring框架中配置Bean是进行依赖注入的基础操作,而深入理解如何高效地配置Bean及其属性对于提高开发效率、优化项目结构具有重要意义。本文将详细解读标题“spring框架配置bean的高级属性”以及描述中的内容,并...
### Spring事务配置的五种方式详解 #### 一、引言 在企业级应用开发中,事务处理是非常重要的一部分,特别是在涉及多个数据库操作时。Spring框架提供了强大的事务管理功能,支持编程式和声明式两种事务处理方式。...
### Spring配置的5种方式详解 #### 一、引言 在Java开发领域,特别是针对企业级应用,Spring框架作为一款轻量级的容器管理工具,不仅提供了强大的依赖注入功能,还支持多种事务管理策略。Struts2+Spring+Hibernate...
在Spring框架中,配置文件是核心组成部分,它们用于定义bean的定义、依赖关系以及各种配置信息。本篇文章将深入探讨Spring配置文件中的归类,主要包括IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented ...
3. **注入集合类型数据**:Spring支持多种集合类型的注入,包括List、Set、Map和Properties等。 - **List集合**:可以通过`<list>`标签来定义一个列表,并使用`<value>`或`<ref>`元素来填充列表中的元素。 - **Set...
此外,对于集合类型的属性,如`list`、`set`、`map`和`props`,Spring提供了专门的配置元素来填充这些集合。 在切面配置方面,Spring提供了AOP(面向切面编程)支持,可以用来实现如日志记录、事务管理等功能。在...
- **集合类型注入**:如List、Set、Map、Properties等,可以在XML配置中使用对应的标签(`<list>`、`<set>`、`<map>`、`<props>`)进行注入,提供多个值或引用其他Bean。 - **引用其他Bean**:通过`ref`属性,可以...