【Spring】【对<bean>注入各种信息】【简单属性,对象属性,集合属性,构造器】
2017-12-30 10:32
761 查看
注入简单属性
<property name="xx" value="XX">
对应字段需要setter方法
会自动转换属性(String Long Integer BigDcimal)
public class User { private String name; private Long age; }
<bean id="user" class="dao.impl.User"> <property name="name" value="armo"/> <property name="age" value="100"/> </bean>
注入对象属性
<property name="XXXX" ref="bean对象的id"/>
将bean对象,当成属性注入到另外一个bean对象
对象属性不需要setter方法
<bean id="sessionFactory" class="XXX.XXX.HibernateTransactionManager" /> <bean id="employeeDAO" class="dao.impl.EmployeeDAOImpl" > <property name="sessionFactory" ref="sessionFactory"/> </bean>
注入集合属性
list和set
list和set操作一样需要setter
<list>的value-type属性可以设置所有元素的类型
<value>的type属性可以设置单个成员的类型
没有声明类型情况,默认使用String
public class User { public List list; }
<bean id="user" class="dao.impl.User"> <property name="list"> <list> <value type="java.lang.String">aaa</value> <value type="java.lang.Long">22</value> <value type="java.lang.Integer">22</value> <ref bean="sessionFactory"/> </list> </property> </bean>
实例 配置sessionFactory工厂时候,声明映射文件的方式就是list
<bean id="sessionFactory" class="LocalSessionFactoryBean"> <!-- Hibernate的映射文件地址 --> <property name="mappingDirectoryLocations"> <list> <value>classpath:XXX.domain</value> </list> </property> </bean>
properies
方式一(常用,不能写中文) 举例 Spring集成Hibernate:Hibernate的属性配置<bean id="sessionFactory" class="LocalSessionFactoryBean"> <!-- Hibernate的配置信息 --> <property name="hibernateProperties"> <value> hibernate.hbm2ddl.auto=update hibernate.show_sql=true hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.cache.use_second_level_cache=true </value> </property> </bean>
方式二(能写中文)
<bean id="user" class="dao.impl.User"> <property name="properties"> <props> <prop key="XXX">中文</prop> <prop key="XXX">XXX</prop> <prop key="XXX">XXX</prop> </props> </property> </bean>
map(不常用)
<bean id="user" class="dao.impl.User"> <property name="map"> <map key-type="键类型" value-type="值类型"> <entry key="" value="" value-type="值类型" value-ref="beanID" key-ref="beanID" /> </map> </property> </bean>
注入构造器属性
在默认情况下.Spring是通过bean类的无参构造器反射创建对象.注入构造器,让Spring容器通过有参构造器来创建对象
public class User { private String name; private Integer age; private Department dept; public User(String name, Integer age, Department dept) { super(); this.name = name ad9f ; this.age = age; this.dept = dept; }
<!--默认按照构造器的形参位置(索引)来注入值--> <bean id="user" class="dao.impl.User"> <constructor-arg value="armo"/> //对应索引为1形参 <constructor-arg value="12"/> //对应索引为2形参 <constructor-arg ref="beanID"/> //对应索引为3形参 </bean>
Spring提供三种方式来定位
name=”形参名字”
<constructor-arg value="12" name="age"/>//对应age
index=”形参的索引,从0开始”
<constructor-arg value="armo" index="1"/> //对应索引为1的形参(name)
type=”形参类型”
<constructor-arg value="12" type="java.lang.Integer"/> //对应形参类型为Integer的形参(age)
相关文章推荐
- Spring JavaBean属性值的注入方式( 属性注入, 特殊字符注入 <![CDATA[ 带有特殊字符的值 ]]> , 构造器注入 )
- [Java] Spring 3.0 /id.vs.name/简单属性的注入/bean中的scope属性/集合注入/自动装配/生命周期/
- <三>Ioc控制反转——bean.xml注入对象、值和集合(附源码)
- [Java] Spring 3.0 /id.vs.name/简单属性的注入/bean中的scope属性/集合注入/自动装配/生命周期/
- [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间
- spring 中配置bean的注入是<property>的name与与ref的id名需要一样吗??
- Android本地最简单的数据存储,没有之一(让SharedPreferences存取JavaBean对象或List<Bean>)
- spring:使用<prop>标签为Java持久属性集注入值
- 报错:spring属性注入时<constructor-arg>标签不可出现属性“name”,这是什么原因呢?
- Spring入门之bean属性注入集合
- Spring配置中<bean>的id和name属性区分
- Spring简单属性注入和集合属性注入
- Spring <bean>标签属性 Autowire自动装配
- Spring (三)注入依赖对象、注入集合类型的属性
- Spring bean属性注入(构造器)
- 从头认识Spring-1.7 怎样通过属性注入Bean?(2)-怎样通过属性向对象注入另一个对象的引用?
- Spring配置中<bean>的id和name属性区分
- Spring配置中<bean>的id和name属性区别
- Spring学习-10:Bean的集合属性的注入
- C#中对List<Object>泛型集合,根据对象的某一属性进行升序排序