java spring IOC xml 方式 内部Bean注入

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

    上次说了外部 Bean注入
    这次来演示一个内部的 Bean注入

    我们先创建一个spring 项目 导入最基本的 spring 包
    在项目src目录下创建一个包 cascade

    cascade包下创建两个类

    Dept 部门类 参考代码如下

    package cascade;
    
    //部门类
    public class Dept {
        private String dname;
    
        public void setDname(String dname) {
            this.dname = dname;
        }
        public String toString() {
            return "'dname=’"+dname;
        }
    }
    
    

    部门类代码比较简单 就是 定义了一个 dname 部门名称
    然后定义了 dname 的 set方法
    重写了一下 toString 类方法 返回了一个部门名称 等于部门名称值的字符串 方便最后测试 看数据对不对

    Emp 员工类
    参考代码如下

    package cascade;
    
    //员工类
    public class Emp {
        private String ename;
        private String gender;
        //员工属于某一个部门使用对象形式表示
        private Dept dept;
        public void setDept (Dept dept) {
            this. dept = dept;
        }
        public void setEname(String ename) {
            this.ename = ename;
        }
        public void setGender(String gender){
            this.gender = gender;
        }
        public void add() {
            System.out.println(ename+"::"+gender+"::"+dept);
        }
    }
    
    

    这里 员工类 定义了 ename 员工名 gender 员工性别 dept所属部门的对象 然后对应 都给他们定义了自己的set方法
    还写了一个 add 方法 用于测试到最后数据能否正常输出

    然后 在src下创建 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 = "emp" class = "cascade.Emp">
            <property name = "ename" value="keling"></property>
            <property name="gender" value=""></property>
            <property name='dept'>
                <bean id = "dept" class="cascade.Dept">
                    <property name="dname" value="开发部"></property>
                </bean>
            </property>
        </bean>
    </beans>
    

    可以看到 我们先用 bean标签 声明了 Emp员工类的实体 然后 在里面 通过dept属性赋值 再给一个bean实体
    就是我们的Dept 部门类 部门类 是作为一个变量 存储在 员工类里面的 这就是内部Bean注入

    然后在src下创建text测试类 参考代码如下

    import cascade.Emp;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class text {
        public static void main(String args[]) {
            //获取配置文件
            ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
            Emp emp = context.getBean("emp", Emp.class);
            emp.add();
        }
    }
    

    读取xml配置文件内容 然后反射对象 通过对象调用员工类的add

    运行结果如下
    在这里插入图片描述
    也是没有任何问题 这就是种内部 Bean注入 也算是一种级联赋值

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    标签: SpringJava