Spring之IOC操作Bena-XML配置文件

一、什么是操作Bena管理

        Bean管理指的是两个操作

        (1).Spring创建对象

        (2).Spring注入属性

二、Bean管理操作xml配置文件方式实现

1.基于xml方式创建对象

创建对象的时候默认执行无参构造方法      

 例:

<!--XML配置文件bean1.xml-->
<bean id="user" class="com.atqjb.Spring5.User"></bean>
package com.atqjb.Spring5;
 //创建一个User类没有无参构造方法
//只有一个带参构造方法
public class User {
    public User(Integer id) {
        
    } 
    public void add(){
        System.out.println("add......");
    }
}
@Test
    public void testAdd(){
        //1加载spring配置文件
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean1.xml");
        //获取配置创建对象
        User user = context.getBean("user", User.class);
        System.out.println(user);
        user.add();
    }

da4fc95cb5834203869ac6c471548fcf.png

 因为没有无参构造方法所以报错,找不到无参构造方法

2.基于xml方式注入属性

 第一种方式:使用set方法进行注入

<!--配置User对象创建-->
<!--bean1.xml-->
<bean id="user" class="com.atqjb.Spring5.User">
    <property name="name" value="Jack"/>
    <property name="age" value="17"/>
</bean>
package com.atqjb.Spring5;
public class User {
    String name;
    Integer age;
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public void printMes(){
        System.out.println("name:"+name);
        System.out.println("age:"+age);
    }
}
@Test
    public void testSet(){
        //1加载spring配置文件
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean1.xml");
        //获取配置创建对象
        User user = context.getBean("user", User.class);
        System.out.println(user);
        user.printMes();
    }

5669e8103bee4cc2b223452445f6e02e.png

 第二种方式:使用有参构造进行注入

<bean id="user" class="com.atqjb.Spring5.User">
    <constructor-arg name="name" value="Jack"/>
    <constructor-arg name="age" value="17"/>
</bean>
package com.atqjb.Spring5;
public class User {
    String name;
    Integer age;
    public User(String name, Integer age) {
        this.name = name;
        this.age = age;
    }
    public void printMes(){
        System.out.println("name:"+name);
        System.out.println("age:"+age);
    }
}
@Test
    public void testConstructor(){
        //1加载spring配置文件
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean1.xml");
        //获取配置创建对象
        User user = context.getBean("user", User.class);
        System.out.println(user);
        user.printMes();
    }

1f04922de12d49d5a6122d523ef80ac5.png

 两种方式不同于在配置文件上,set注入用property来绑定内部的属性并调用set方法将value值进行赋值,而构造方法注入使用constructor-arg

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值