概述
1、为什么Controller层注入的是Service接口,而不是ServiceImpl实现类
Controller层
@Autowired
private TestImpl testImpl; //注入了实现类
面向接口编程
(1)注入的就是实现类,只不过拿接口来接收,接收的类型为接口,面向接口编程,那么为何要面向接口编程?这就涉及到使用接口做代理,因为通过@autowired的对象是通过接口的方式会使用jdk动态代理,jdk动态代理只能对实现接口的类生成代理,而不能针对类。
(2)注入的是实现类对象,接收的是接口;理解为多态;
要遵循Controller–Service接口–ServiceImpt实现类–Mapper接口模式;
2、分布式锁三种实现方式
(1)、 基于数据库实现分布式锁;
(2)、基于缓存(Redis等)实现分布式锁;
(3)、 基于Zookeeper实现分布式锁;
最后
以上就是顺利板栗为你收集整理的java--那些事的全部内容,希望文章能够帮你解决java--那些事所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复