spring5入门(八):基于xml配置管理bean,自动装配、外部属性文件


自动装配

  • 自动装配定义
根据指定装配规则(属性名称或者属性类型),Spring 自动将匹配的属性值进行注入
  • 实现代码1:byName根据属性名称注入 ,注入值bean的id值和类属性名称一样
# 部门实体
public class Dept {

    @Override
    public String toString() {
        return "Dept{}";
    }

}

# 员工实体
public class Emp {

    private Dept dept;

    public void setDept(Dept dept) {
        this.dept = dept;
    }

    @Override
    public String toString() {
        return "Emp{" +
                "dept=" + dept +
                '}';
    }

    public void test() {
        System.out.println(dept);
    }

}

# 配置bean.xml
    
    

    

# 测试方法
    @Test
    public void test4() {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean3.xml");
        Emp emp = context.getBean("emp", Emp.class);
        System.out.println(emp);
    }

# 控制台
Emp{dept=Dept{}}

Process finished with exit code 0
  • 实现代码2:byType根据属性类型注入
# 部门实体
public class Dept {

    @Override
    public String toString() {
        return "Dept{}";
    }

}

# 员工实体
public class Emp {

    private Dept dept;

    public void setDept(Dept dept) {
        this.dept = dept;
    }

    @Override
    public String toString() {
        return "Emp{" +
                "dept=" + dept +
                '}';
    }

    public void test() {
        System.out.println(dept);
    }

}

# 配置bean.xml
    
    

    

# 测试方法
    @Test
    public void test4() {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean3.xml");
        Emp emp = context.getBean("emp", Emp.class);
        System.out.println(emp);
    }

# 控制台
Emp{dept=Dept{}}

Process finished with exit code 0
  • byType缺陷:bean.xml中有2个bean时会报错

外部属性文件

  • 导入依赖

  • 直接配置


    
    
    
    

  • 使用context 名称空间
  • src目录下创建jdbc.properties
prop.driverClass=com.mysql.jdbc.Driver
prop.url=jdbc:mysql://localhost:3306/userDb
prop.userName=root
prop.password=root
  • bean.xml中添加:xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
<?xml version="1.0" encoding="UTF-8"?>