博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOC的类型(DI注入)
阅读量:6828 次
发布时间:2019-06-26

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

  从注入方法上看,IOC可以分为三种类型:构造函数注入,set方法属性注入,接口方法注入,spring中支持前两种注入方式。

/**  * 导演  * Created by qiqi on 2018/11/20 9:53  */ public class DirectorService {
//剧本1 public void direct1() {
//安排刘德华出演革离 GeLi geLi = new LiuDeHua(); //构造函数将革离注入到墨攻剧本 MoAttackService moAttackService = new MoAttackService(geLi); //城门守卫询问 moAttackService.cityGateAsk(); } //剧本2 public void direct2() {
//安排刘德华出演革离 GeLi geLi = new LiuDeHua(); //set方法注入 MoAttackService moAttackService = new MoAttackService(); moAttackService.setGeLi(geLi); //城门守卫询问 moAttackService.cityGateAsk(); } //剧本3 public void direct3() {
//安排刘德华出演革离 GeLi geLi = new LiuDeHua(); //接口方法注入 MoAttackService moAttackService = new MoAttackService(); moAttackService.injectGeLi(geLi); //城门守卫询问 moAttackService.cityGateAsk(); } }
/**  * 墨攻剧本  * Created by qiqi on 2018/11/20 9:42  */ public class MoAttackService implements Acctor {
private GeLi geLi; //构造函数注入 public MoAttackService(GeLi geLi) {
this.geLi = geLi; } public MoAttackService() {
} //set方法注入 public void setGeLi(GeLi geLi) {
this.geLi = geLi; } //城门守卫询问 public void cityGateAsk() {
geLi.responseAsk("I am MoAttack Geli"); }   //重写接口方法 @Override public void injectGeLi(GeLi geLi) {
geLi.responseAsk("I am MoAttack Geli"); } }
/**  *接口方法  * Created by qiqi on 2018/11/20 10:16  */ public interface Acctor {
void injectGeLi(GeLi geLi); }
/**  * 革离  * Created by qiqi on 2018/11/20 9:45  */ public class GeLi {
private String name; //回答 public String responseAsk(String name) {
return this.name = name; } }
/**  * Created by qiqi on 2018/11/20 9:55  */ public class LiuDeHua extends GeLi {
}
由于接口注入需要额外声明一个接口,增加了类的数目,其本质与效果与set方法注入并无区别,所以不建议接口注入

转载于:https://www.cnblogs.com/dakewang/articles/9987483.html

你可能感兴趣的文章
业务开发测试HBase之旅三:通过Java Api与HBase交互
查看>>
让ComboBox显示图片--PictureComboBox
查看>>
JS父页面获取子页面返回值
查看>>
鼠标点击主窗体时,模态子窗口是WindowStyle.None时如何闪烁
查看>>
LABJS源码浅析
查看>>
myShellcode
查看>>
Qore Oracle Module 2.2 发布
查看>>
MoonScript 0.2.2 发布,基于 Lua 的脚本语言
查看>>
assertThat使用方法
查看>>
2013年11月11日工商银行笔试总结
查看>>
Qt之问题求助——当VS遇到“向Pro中添加代码”怎么办?
查看>>
使用reserve函数避免vector和string的内存重新分配
查看>>
ADO.NET(内含存储过程讲解)
查看>>
利用TreeView实现C#工具箱效果
查看>>
PyTalk : a Jabber Client un Python using xmpppy and PyQt4
查看>>
C++类构造函数初始化列表(转)
查看>>
13最佳WordPress的维护插件
查看>>
Missing Screenshot 的解决方案
查看>>
jQuery:1.5.4.3,表格变色(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)...
查看>>
oracle11gR2安装示例数据库
查看>>