• 【Spring 从0开始】IOC容器的Bean管理


    一、注入外部 bean

    如果你要引用外部 bean,就要先注入外部bean。比如常见的web项目中的service、dao 这2层,通过 service 去调用 dao,这个过程就叫引入外部 bean。

    现在有从左至右的3段代码,分别是 service、dao、dao接口的实现类。

    现在想要在 service 中调用 dao 里的 update() 方法,用之前传统的方法,可以 new:

    现在通过XML配置文件进行操作,用法还是跟之前文章讲到的一样,只不过之前注入属性都是用的 String,现在注入的是对象。

    1. service 中的操作

    在 UserService 里创建 UserDao 类型的属性,生成 set 方法。

    2. 配置 bean 文件

    新建了一个 bean2.xml 文件,在这里创建 service 和 dao 的对象,然后在 userServie 里注入 userDao 对象。

    • name:是属性名称,就是上面在 UserService 创建的 UserDao 类型的属性 userDao。
    • ref:之前注入的时候用的是 value,现在注入对象用的 ref,值就是要引用的对象 bean 标签里 id,这里就是 userDaoImpl。

    写一个测试代码,运行正确的话,应该可以看到 service 和 dao 这2层代码里的 print 输出。

    二、注入内部 bean 和级联赋值

    内部bean:只有将 bean 用作另一个 bean 的属性时,才能将 bean 声明为内部 bean。

    实体类之间经常遇到 1对多关系,比如 部门 和 员工。 部门是 1,员工是多。如何表示这种关系?

    1. bean 中的操作

    新建2个类,分别是 员工类 Employee、部门类 Department,都有着自己的属性。

    员工是属于部门的,要表示这个关系,在员工类 Employee 里,加上部门对象 Department 类型的属性 department。

    2. 配置 bean 文件

    新建一个 bean3.xml,这里也可以使用上述外部 bean的方式,不过下面使用的内部 bean 的写法,通过在对象属性里再嵌套一个对象。

    测试一下,在 Employee 类里增加一个 add()方法,在 Department 类里增加 toString() 方法打印。

    最后修改下测试方法,运行一下。

    结果打印出了,在xml里注入的值。

    --不要用肉体的勤奋,去掩盖思考的懒惰--
  • 相关阅读:
    常系数齐次线性递推
    【CF961G】Partitions(第二类斯特林数)
    【CF715E】Complete the Permutations(容斥,第一类斯特林数)
    【BZOJ4671】异或图(斯特林反演)
    【CF960G】Bandit Blues(第一类斯特林数,FFT)
    【BZOJ2159】Crash的文明世界(第二类斯特林数,动态规划)
    【LOJ#6374】网格(二项式反演,容斥)
    组合计数和反演
    有标号的DAG计数(FFT)
    [复习]多项式和生成函数相关内容
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/14948332.html
Copyright © 2020-2023  润新知