Spring 配置bean
1、首先新建bean.xml
image.png
2、配置bean标签
image.png
3、解释bean标签
spring有一种技术叫做IoC技术,就是控制反转,意思就是将本来由我们来创建的对象实例,来把他交给spring,bean里的class代表这个类的地址,而id代表这个类的唯一标识,他下面有property标签,name标签代表这个类的成员变量,spring会根据这个标签调用类的set和get方法,然后将value的值赋值给这个类
4、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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 调用的是set和get方法,并且走了空参构造器-->
<bean id="stu" class="Student" >
<property name="age" value="18"></property>
<property name="name" value="高建"></property>
<property name="sex" value="男"></property>
</bean>
<!-- 带参的构造器-->
<bean id="stu1" class="Student">
<constructor-arg name="age" value="18" />
<constructor-arg name="name" value="18" />
<constructor-arg name="sex" value="18" />
<property name="sex" value="女" />
</bean>
<!-- 得按照构造器参数的顺序-->
<bean id="stu2" class="Student">
<constructor-arg value="18" />
<constructor-arg value="18" />
<constructor-arg value="18" />
<property name="sex" value="女" />
</bean>
<!-- 根据索引位置决定参数的位置-->
<bean id="stu3" class="Student">
<constructor-arg index="0" value="18" />
<constructor-arg index="1" value="18" />
<constructor-arg index="2" value="18" />
<property name="sex" value="女" />
</bean>
<!-- 根据类型决定调用的构造器,也得跟着构造器的顺序来-->
<bean id="stu4" class="Student">
<constructor-arg type="java.lang.String" value="18" />
<constructor-arg type="java.lang.Integer" value="18" />
<constructor-arg type="java.lang.String" value="18" />
<property name="sex" value="女" />
</bean>
<!-- 使用spring再创建一个对象-->
<bean id="addr" class="Address">
<constructor-arg name="address" value="南京市" />
</bean>
<bean id="now" class="Address">
<constructor-arg name="address" value="合肥市" />
</bean>
<!-- ref:引用指向了id=addr的bean 还有一个指向了now,也就是同一个address创建了两个对象-->
<bean id="stu5" class="Student">
<constructor-arg name="age" value="18" />
<constructor-arg name="name" value="18" />
<constructor-arg name="sex" value="18" />
<constructor-arg name="address" ref="addr" />
<constructor-arg name="now" ref="now" />
<property name="sex" value="女" />
</bean>
<!-- 根据内部类-->
<bean id="outerBean" class="Student">
<property name="target">
<bean id="innerBean" class="Student$Student1"/>
</property>
</bean>
</beans>