博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Spring实战】—— 6 内部Bean
阅读量:6854 次
发布时间:2019-06-26

本文共 2378 字,大约阅读时间需要 7 分钟。

本篇文章讲解了Spring的通过内部Bean设置Bean的属性

  类似内部类,内部Bean与普通的Bean关联不同的是:

  1 普通的Bean,在其他的Bean实例引用时,都引用同一个实例。

  2 内部Bean,每次引用时都是新创建的实例。

  鉴于上述的场景,内部Bean是一个很常用的编程模式。

  下面先通过前文所述的表演者的例子,描述一下主要的类:

package com.spring.test.setter;import com.spring.test.action1.PerformanceException;import com.spring.test.action1.Performer;public class Instrumentalist implements Performer{    private String song;    private int age;    private Instrument instrument;    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getSong() {        return song;    }    public void setSong(String song) {        this.song = song;    }    public Instrument getInstrument() {        return instrument;    }    public void setInstrument(Instrument instrument) {        this.instrument = instrument;    }    public Instrumentalist(){}    public Instrumentalist(String song,int age,Instrument instrument){        this.song = song;        this.age = age;        this.instrument = instrument;    }    public void perform() throws PerformanceException {        System.out.println("Instrumentalist age:"+age);        System.out.print("Playing "+song+":");        instrument.play();    }}

  其他代码,如下:

package com.spring.test.setter;public interface Instrument {    public void play();}
package com.spring.test.setter;public class Saxophone implements Instrument {    public Saxophone(){}    public void play() {        System.out.println("TOOT TOOT TOOT");    }}
package com.spring.test.action1;public interface Performer {    void perform() throws PerformanceException;}

  如果使用 设值注入 需要设定属性和相应的setter getter方法。

  如果使用 构造注入 需要构造函数。

  应用上下文使用方法:

public class test {    public static void main(String[] args) throws PerformanceException {        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");                Instrumentalist performer = (Instrumentalist)ctx.getBean("kenny");        performer.perform();                Instrumentalist performer2 = (Instrumentalist)ctx.getBean("kenny-constructor");        performer2.perform();    }}
本文转自博客园xingoo的博客,原文链接:,如需转载请自行联系原博主。
你可能感兴趣的文章
NSLayoutConstraint
查看>>
深入浅出: 大小端模式
查看>>
走在网页游戏开发的路上(十一)
查看>>
[Linux shell]查找某目录下文件是否包含某个字符串
查看>>
Java的RMI远程方法调用实现和应用
查看>>
线程间共享数据无需竞争
查看>>
记一次通宵加班
查看>>
iOS7 兼容适配 如何判断版本号
查看>>
Hibernate懒加载解析
查看>>
字符串匹配与KMP算法实现
查看>>
菜鸟学自动化测试(七)----selenium RC 工作原理
查看>>
ACM 要学
查看>>
C++之:模板元编程(二) 模板形参
查看>>
甲骨文宣布正式介入存储业务 超融合架构须基于对业务的深刻了解
查看>>
[华为机试练习题]25.圆桌游戏
查看>>
Android学习笔记(16):绝对布局AbsoluteLayout、常用距离单位
查看>>
[华为机试真题]66.单词搜索
查看>>
[From My Companion]memmem
查看>>
Magento--给EAV模型新增非EAV属性
查看>>
ASP.NET 系统支持数据库访问设计
查看>>