IOC操作-bean管理之依赖注入(DI)-基于XML方式

252 阅读1分钟
1. 第一种注入方式:有参构造器进行注入
实例:
    User:
    public class User {
    private String name;
    private String sex;
    public User()
    {
        System.out.println("我是User的无参构造方法");
    }
    public User(String name,String sex)
    {
        this.name=name;
        this.sex=sex;
        System.out.println("我是User的双参构造方法");
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
}
bean1.xml:
<?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 id="user" class="com.zcy.www.entity.User" >
        <constructor-arg name="sex" value="男"></constructor-arg>
        <constructor-arg name="name" value="晚来微风"></constructor-arg>
    </bean>
</beans>
Test:
    @Test
    public void test()
    {
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("bean1.xml");
        User user = applicationContext.getBean("user", User.class);
        System.out.println(user);
    }
2. 第二种注入方式:set注入
实例:
bean.xml:
<?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 id="user" class="com.zcy.www.entity.User" >
        <property name="name" value="晚来微风"></property>
        <property name="sex>" value="男"></property>
    </bean>
</beans>
User:
public class User {
    private String name;
    private String sex;
    public void setName(String name) {
        this.name = name;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
}
3. 第三种注入方式:p名称空间注入(简化set注入)
实例:
bean.xml:
<?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:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="user" class="com.zcy.www.entity.User" p:name="晚来微风" p:sex="男">
    </bean>
</beans>