上次说了外部 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
参考代码如下
可以看到 我们先用 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注入 也算是一种级联赋值
上一篇:Linux条件判断(全)