spring属性的注入为什么不支持接口注入
来源:互联网 发布:app理财软件 编辑:程序博客网 时间:2024/06/05 15:48
最近在学习的时候突然想到这个问题,那么为什么spring就不支持接口注入呢?
首先,我们来看下属性的注入方式有三种:
1. set方法(重点)
public class User{ private String name; public void setName(String name){ this.name=name; } } User user=new User(); user.setName("shenxuebing");
2.有参数的构造(不常用)
public class User{ private String name; public void setName(String name){ this.name=name; } } User user=new User("shenxuebing");
3.使用接口注入(spring不支持)
public interface Dao{ public void add(Stirng name); } public class DaoImpl implements Dao{ private Stirng name; public void add(String name){ this.name=name; } }
其次,在软件设计有个规则,相信每个程序猿都听过,那就是“高内聚,低耦合”。什么意思呢?请见我的另一篇文章《高内聚低耦合》。简单来说要想实现接口注入,那就得实现这个接口的方法,这样就造成了耦合度高,不利于程序的拓展性。这不是最好的初衷。
最后,我们抛开耦合度高来看下接口注入。在接口注入过程中,我们在实现接口的类中也要定义要赋值的变量,然后实现属性的注入。
private Stirng name; public void add(String name){ this.name=name; }
大家想一想这段代码是不是似曾相识,对!,那就是用set方法注入,这不就是换了个名字而已吗?为何要那么费劲的要实现个接口来进行属性注入呢?本身就是set注入,然后又非要加个接口来实现这个功能,这样就多此一举了。而且还造成了耦合度高。这样为了降低耦合度,方便简洁,所以spring不支持接口的属性注入。
欢迎大佬前来指点迷津,小弟有什么说的不对的地方多多指出,小弟不胜感激。
阅读全文
0 0
- spring属性的注入为什么不支持接口注入
- Spring为什么Autowired注入的是接口
- Spring为什么Autowired注入的是接口
- Spring为什么@Autowired注入的是接口
- Spring的接口注入
- Spring---->属性的注入
- 为什么spring注入接口正确而注入接口的实现类错误?
- Spring不支持静态注入
- Spring的依赖注入(接口注入)
- Spring的依赖注入(接口注入)
- Spring的依赖注入(接口注入)
- Spring的依赖注入(接口注入)
- Spring的依赖注入(接口注入)
- 含有接口的spring注入
- 关于spring的属性注入
- Spring属性注入的方式
- spring属性的注入实例
- Spring的属性注入(SPEL)
- Hibernate连接oracle数据库:外部(远程)数据库和内部(本地)数据库
- 2017-07-19:NOIP2016Day1
- Unity中物体运动方法总结
- Yarn的原理与资源调度
- Android添加一个回调监听接口
- spring属性的注入为什么不支持接口注入
- Could not resolve placeholder 'driver' in string value "${driver}"
- getopt在Python中的使用(转)
- [以太坊源代码分析] I.区块和交易,合约和虚拟机
- 专注无线 | 顺舟智能基于zigbee打造多款传感器模组
- win10环境下安装Ubantu双系统(超详解)
- SIP笔记
- ECharts 仪表盘改变颜色
- 使用Go开发gRPC