Spring - IOC 依赖注入(XML方式)

bean标签

 <bean id="user" class="com.d.Spring.IOC.User"></bean>
 常用属性:
		 id:类的唯一标识
		 class:类的全路径名称
		 创建对象的时候默认的是执行无参构造方法来创建对象

DI依赖注入

1. setter方法注入

User类:

public class User {
    public String name;

    public void setName(String name) {
        this.name = name;
    }
}

xml配置:

<bean id="user" class="com.d.Spring.IOC.User">
          <property name="name" value="sudi"></property>
</bean>

测试类:

public class testDemo {

    @Test
    public void demo(){
        ApplicationContext context = new ClassPathXmlApplicationContext("demo.xml");
        User user = context.getBean("user",User.class);
        System.out.println(user.name);
    }

}

User类中必须有对应属性的set方法,否则则会报错。

2.使用有参构造注入

User类:

public class User {
    public String name;
    public String password;

    public User(String name, String password) {
        this.name = name;
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

xml配置文件:

        <bean id="user" class="com.d.Spring.IOC.User">
                <constructor-arg name="name" value="sudi"></constructor-arg>
                <constructor-arg name="password" value="112456"></constructor-arg>
        </bean>
3.注入null(使用标签)和带有特殊字符的属性值(使用<![CDATA[ ]]>)
  1. 使用标签
以name属性为例子:
        <bean id="user" class="com.d.Spring.IOC.User">
                <property name="name" value="sudi"></property>
        </bean>
        
注入name属性值为null:
        <bean id="user" class="com.d.Spring.IOC.User">
                <property name="name">
                	<null/>
                </property>
        </bean>
  1. 使用<![CDATA[ ]]>
    在这里插入图片描述

若直接用property则会报错:

org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 13 in XML document from class path resource [demo.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 13; columnNumber: 46; 与元素类型 "property" 相关联的 "value" 属性值不能包含 '<' 字符。

使用<![CDATA[ ]]>将带有特殊符号的属性值放入相应位置即可。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值