以下是官网作出的解释 点击进入spring官网
Spring提供了ApplicationContext接口的几个实现。在独立应用程序中,通常会创建ClassPathXmlApplicationContext或FileSystemXmlApplicationContext的实例。虽然XML是定义配置元数据的传统格式,但是您可以通过提供少量的XML配置来指示容器使用Java注释或代码作为元数据格式,以声明方式启用对这些附加元数据格式的支持。
- 通过set方法的参数名创建bean
<!--对应的实体类需要有对应的set方法,并且set方法的参数名与property标签中的name一致-->
<bean id="bySetName" class="com.gq.demo.entity.ObjectEntity">
<property name="id" value="id111"></property>
<property name="name" value="I'm bySetName"></property>
</bean>
- 通过构造参数创建bean(可以使用参数名和参数的下标从0开始是第一个参数)
<!--这种是通过参数名去构造-->
<bean id="byConstructorArg" class="com.gq.demo.entity.ObjectEntity">
<constructor-arg name="id" value="id2"></constructor-arg>
<constructor-arg name="name" value="I’m byConstructor"></constructor-arg>
</bean>
<!--这种是通过参数下标去构造-->
<bean id="byConstructorIndex" class="com.gq.demo.entity.ObjectEntity">
<constructor-arg index="0" value="id3"></constructor-arg>
<constructor-arg index="1" value="I’m byConstructorIndex"></constructor-arg>
</bean>
- 设置特殊值(设置null值 设置大于小于的特殊值)
<!--value设置特殊值 -->
<bean id="setSpecialValue" class="com.gq.demo.entity.ObjectEntity">
<property name="id" value="id4"></property>
<property name="name"><null/></property>
<!-- < 小于 > 大于 -->
<!-- <property name="remark" value="<<测试>>"></property>-->
<!--也可以使用 <![CDATA[your value]]> -->
<property name="remark">
<value> <![CDATA[<<测试>>]]> </value>
</property>
</bean>
- 注入外部bean(一个bean调用另一个bean)
<!--
1.先分别创建两个bean
2.然后使用ref属性进行注入
-->
<bean id="userService" class="com.gq.demo.create.service.UserService">
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userDao" class="com.gq.demo.create.dao.UserDao"></bean>
- 注入内部bean
<!--现有一个员工实体类和部门实体类员工bean注入部门bean-->
<!--1.内部注入的方式 在department配置里面再创建一个bean对其进行构造-->
<bean id="emp" class="com.gq.demo.entity.Emp">
<property name="empId" value="empId1"></property>
<property name="empName" value="闪电鞭"></property>
<property name="department">
<bean id="dept" class="com.gq.demo.entity.Department">
<property name="deptId" value="deptId1"></property>
<property name="deptName" value="混元太极部门"></property>
</bean>
</property>
</bean>
<!--2. 也可以当成对象形式给它点出来 前提是得有department的get方法-->
<bean id="emp" class="com.gq.demo.entity.Emp">
<property name="empId" value="empId1"></property>
<property name="empName" value="闪电鞭"></property>
<!--级联赋值-->
<property name="department" ref="dept"></property>
<property name="department.deptId" value="deptId2"></property>
<property name="department.deptName" value="接化发部门"></property>
</bean>
<bean id="dept" class="com.gq.demo.entity.Department"></bean>
- 注入集合
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<!--提取公用的值 也可以是bean
使用util:list需要在beans添加
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
-->
<!--提取公用的值 也可以是bean -->
<util:list id="list">
<value>value1</value>
<value>value2</value>
<value>value3</value>
</util:list>
<!--property都有对应的属性-->
<bean id="injectCollection" class="com.gq.demo.entity.CollectionEntity">
<property name="array" ref="list"></property>
<property name="list" ref="list"></property>
<property name="map">
<map>
<entry key="m1" value="map1"></entry>
<entry key="m2" value="map2"></entry>
</map>
</property>
<property name="set" >
<set>
<value>set1</value>
<value>set2</value>
</set>
</property>
<property name="empList" >
<list>
<bean id="emp" class="com.gq.demo.entity.Emp">
<property name="empName" value="一鞭"></property>
</bean>
<bean id="emp" class="com.gq.demo.entity.Emp">
<property name="empName" value="两鞭"></property>
</bean>
<bean id="emp" class="com.gq.demo.entity.Emp">
<property name="empName" value="三鞭"></property>
</bean>
</list>
</property>
</bean>
</beans>