Spring学习-02课XML配置使用-XML详解Bean注入

319 阅读1分钟

XML beans内部配置

<?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">
        <bean class="com.kdy.beans.User" id="user">
                <description>用来描述bean是干什么的</description>
        </bean>
        <bean class="com.kdy.beans.User" id="user2"></bean>
<!--        设置bean的别名-->
        <alias name="user" alias="user3"></alias>

<!--        可以导入另外的xml   <import resource=""></import>-->

# </beans>

<bean class="com.kdy.beans.User" id="user2" name="zhangsan lisi,wangermazi"></bean>

除了alias之外 也可以直接通过name设置别名(空格 ,号 ;号都可以)

测试代码Before注解

@Before
public void before1(){
    ioc = new ClassPathXmlApplicationContext("spring.xml");
}

设置公用的在测试前加载

XML Bean注解依赖注入

<bean class="com.kdy.beans.User" name="user6">
        <property name="id" value="18"></property>
        <property name="username" value="张三"></property>
        <property name="realname" value="张歪歪"></property>
 </bean>

基于setter方法的注入 初始化。 name 属性名 对应setter的方法名

<bean class="com.kdy.beans.User" name="user7">
        <constructor-arg name="id" value="2"></constructor-arg>
        <constructor-arg name="realname" value="李四"></constructor-arg>
        <constructor-arg name="username" value="李不着调"></constructor-arg>
</bean>

基于construct构造函数的 注入。name 可以省略 一定注意参数顺序。name也可以用 index 0 1 2来代替。可以通过type 指定参数类型

type="java.lang.String" 

注入null值

<property name="name">
        <null></null>
</property>

注入对象实例 ref方式

<property name="wife" ref="wife"></property>
<bean class="com.kdy.beans.Wife" id="wife">
        <property name="age" value="18"></property>
        <property name="realname" value="挑花"></property>
</bean>

注入对象实例 bean直接使用

<property name="wife">
        <bean class="com.kdy.beans.Wife">
                <property name="age" value="13"></property>
                <property name="realname" value="不知道名"></property>
        </bean>
</property>

注入List类型是基础类型

<property name="hobbies">
        <list>
                <value>游泳</value>
                <value>打游戏</value>
        </list>
</property>

注入Map类型

<property name="course">
        <map>
                <entry key="111" value="MySQL"></entry>
                <entry key="222" value="Oracle"></entry>
        </map>
</property>