首页 > 其他分享 >SpringBoot中的扩展和解耦思想

SpringBoot中的扩展和解耦思想

时间:2023-11-03 22:24:20浏览次数:30  
标签:SpringBoot Service 扩展 登录 String UserService login public 和解

你可能会有这样的疑问:在SpringBoot中,为什么不直接使用一个Service写功能,而是Service接口+ServiceImpl实现类?

  • 当项目比较简单的时候,需求明确,变更不频繁或者几乎不怎么修改的时候,用第一种就好了
  • 当项目比较复杂,需求变更多的时候,用第二种比较好

这种方式的好处有:

  1. 解耦合
  2. 便于扩展

解耦合和扩展的例子:

public interface UserService {
	String login();
}
@Service("WxService")
public class WxUserServiceImpl implements UserService {
	@Override
    public String login() {
        // 微信小程序登录的执行逻辑
        return "wxmp login";
    }
}
@Service("AliService")
public class AliPayUserServiceImpl implements UserService {
    @Override
    public String login() {
        // 支付宝小程序登录的执行逻辑
        return "alimp login";
    }
}

这样,一个UserService就实现了微信小程序和支付宝小程序的登录功能,既实现了解耦(我们需要登录,只需要依赖于UserService这个接口,而不需要依赖具体的实现类,这就是解耦),又实现了扩展(如果我们需要添加百度小程序的登录功能,我们只需要实现UserService接口并重写login方法即可)

标签:SpringBoot,Service,扩展,登录,String,UserService,login,public,和解
From: https://www.cnblogs.com/timqiu/p/17808625.html

相关文章

  • springboot的自动装配机制
    ·自动配置的Tomcat,SpringMvc等只需要导入场景,容器中就会自动配置好这个场景的核心组件容器中有什么组件,就具备什么样的功能·默认的包扫描规则@SpringBootApplication标注的类就是主程序类SpringBoot只会扫描主程序所在的包及其下......
  • 在线点餐系统(课设) springboot 免费源码
    项目源码获取方式见文章末尾处项目技术数据库:Mysql8.0数据表数:5张开发工具:idea前端技术:Springboot+MybatisPlus后端技术:BootStrap+Thymeleaf功能简介该项目是一个在线点餐系统,分为用户端和商家端。商家端:    登录/注册    首页    菜单管理    订单管理   ......
  • springboot + maven + war
    参考文档:springboot配置https://blog.csdn.net/weixin_42594143/article/details/132651455maven项目打war包https://blog.csdn.net/yuanpeij/article/details/120563593https://blog.51cto.com/u_16099190/63531951、项目启动类在SpringBoot应用中,如果需要将应......
  • SpringBoot自动装配(二)源码分析
    基于SpringBoot2.7.11step1.从EnableAutoConfiguration注解开始注解@EnableAutoConfiguration开启了自动配置然后SpringBoot在启动的时候通过类路径进行扫描查找所有META-INF/spring.factories文件加载其中所有的自动配置类step2.应用启动@SpringBootApplicationpub......
  • Dapper.Lite 扩展
    最近重构并精简了Dapper.Lite,然后把不依赖Dapper的版本LiteSql也重构了一下,和Dapper.Lite保持一致。感觉这两款ORM基本完工,自荐一下。.NET的ORM虽多,堪用的不多,何为堪用,EF是官方的,质量高,堪用。Dapper用户量大,现在BUG基本改的差不多了,也基本不增加新功能,就不会引入新BUG。SqlSugar......
  • springboot配置静态资源访问
    重写WebMvcConfigurer中的addResourceHandles1.配置静态资源地址 2.重写 完整代码@ConfigurationpublicclassInterceptorConfigimplementsWebMvcConfigurer{@Value("${file.path}")privateStringpath;//D:/ndedu/image/@Value("${file.stat......
  • Spring/SpringBoot中的声明式事务和编程式事务源码、区别、优缺点、适用场景、实战
    一、前言在现代软件开发中,事务处理是必不可少的一部分。当多个操作需要作为一个整体来执行时,事务可以确保数据的完整性和一致性,并避免出现异常和错误情况。在SpringBoot框架中,我们可以使用声明式事务和编程式事务来管理事务处理。其中事务的坑也是不少,比较常见的就是事务失效,大家......
  • springboot-vue 项目
    一、后端 @Controller一般 在controller中return返回的是一个地址@RestController返回的是一个数据(json),在前后端分离都是用@RestController @RequestParam   与浏览器上的值作为绑定(如果name写错,也能传递),不过写了之后一定要传 @RequestBody 传递json格式......
  • Springboot使用return跳转到html页面只是返回字符串,不跳转问题的解决
    问题描述我在使用SpringBoot进行页面跳转时,发现其只是返回相应的字符串,并不会出现页面跳转:问题解决不要在Controller层加@Responsebody注解,不然就只会默认是返回字符串,而不会返回页面;......
  • HHDBCS扩展数据库类型
    为应对市面上的数据库种类繁多的问题,HHDBCS设置了扩展数据库功能。在登陆界面点击“工具”,选择“扩展数据库类型”;注:HHDBCS支持已kingbase,本文仅用来举例。填入名称、所需数据库的信息,上传驱动;然后点击保存。即可在登陆界面的数据库类型中,找到该数据库。点击登陆可使用基......