beans.xml 有三种方式编写
实体类
public class UserT {
private String name;
public UserT(String name) {
this.name = name;
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.println("name="+ name );
}
}
beans.xml
<!-- 第一种根据index参数下标设置 -->
<bean id="userT" class="com.pjx.pojo.UserT">
<!-- index指构造方法 , 下标从0开始 -->
<constructor-arg index="0" value="pjx"/>
</bean>
<!-- 第二种根据参数名字设置 -->
<bean id="userT" class="com.pjx.pojo.UserT">
<!-- name指参数名 -->
<constructor-arg name="name" value="pjx"/>
</bean>
<!-- 第三种根据参数类型设置(不推荐使用) -->
<bean id="userT" class="com.pjx.pojo.UserT">
<constructor-arg type="java.lang.String" value="pjx"/>
</bean>
总结:在配置文件加载的时候,管理的对象就已经初始化了
bean就是java对象,由Spring创建和管理
id 是bean的标识符,要唯一,如果没有配置id,name就是默认标识符 如果配置id,又配置了name,那么name是别名
name可以设置多个别名,可以用逗号,分号,空格隔开
如果不配置id和name,可以根据applicationContext.getBean(.class)获取对象;
class是bean的全限定名=包名+类名
<bean id="hello" name="hello2 h2,h3;h4" class="com.pjx.pojo.Hello">
<property name="name" value="Spring"/>
</bean>
DI依赖注入
被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写 , 如果属性是boolean类型 , 没有set方法 , 是 is .
注入的方法
- 值是一个引用,ref
<bean id="student" class="com.kuang.pojo.Student">
<property name="name" value="小明"/>
</bean>
- Bean注入 值是一个引用,ref
<bean id="addr" class="com.kuang.pojo.Address">
<property name="address" value="重庆"/>
</bean>
<bean id="student" class="com.kuang.pojo.Student">
<property name="name" value="小明"/>
<property name="address" ref="addr"/>
</bean>
- 数组注入
<bean id="student" class="com.kuang.pojo.Student">
<property name="name" value="小明"/>
<property name="address" ref="addr"/>
<property name="books">
<array>
<value>西游记</value>
<value>红楼梦</value>
<value>水浒传</value>
</array>
</property>
</bean>
- List注入
<property name="hobbys">
<list>
<value>听歌</value>
<value>看电影</value>
<value>爬山</value>
</list>
</property>
- Map注入
<property name="card">
<map>
<entry key="中国邮政" value="456456456465456"/>
<entry key="建设" value="1456682255511"/>
</map>
</property>
- set注入
<property name="games">
<set>
<value>LOL</value>
<value>BOB</value>
<value>COC</value>
</set>
</property>
- Null注入
<property name="wife"><null/></property>
- Properties注入
<property name="info">
<props>
<prop key="学号">20190604</prop>
<prop key="性别">男</prop>
<prop key="姓名">小明</prop>
</props>
</property>