首页 > 其他分享 >SpringBoot中,为什么不直接使用一个Service写功能,而是Service接口+ServiceImpl实现类?

SpringBoot中,为什么不直接使用一个Service写功能,而是Service接口+ServiceImpl实现类?

时间:2023-10-31 11:44:45浏览次数:24  
标签:String Service getName 接口 HumanService ServiceImpl public SpringBoot

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

service层=service接口+serviceImpl实现类
这种方式好处:
1、解耦合
2、便于扩展
例如:
public interface HumanService {
String getName();
}
@Service("teacherService")
public class TeacherServiceImpl implements HumanService {
@Override
public String getName() {
return "this is a teacher";
}
}
@Service("studentService")
public class StudentServiceImpl implements HumanService {
@Override
public String getName() {
return "this is a student";
}
}
这样一个teacherService和studentService的getName方法就实现了解耦

标签:String,Service,getName,接口,HumanService,ServiceImpl,public,SpringBoot
From: https://www.cnblogs.com/timqiu/p/17799904.html

相关文章

  • Gradle8.4构建SpringBoot多模块项目
    Gradle8.4构建SpringBoot多模块项目一、基本1、版本这个版本是Jdk8最后一个SpringBoot版本软件版本Gradle8.4SpringBoot2.7.15JDK82、Gradle基本介绍2.1、使用Wrapper方式构建好处:统一gradle的版本好处:不用安装gradle就可以使用Maven也是一样的......
  • 一文详解 springboot 项目启动时异步执行初始化逻辑
    你知道的越多,你不知道的越多点赞再看,养成习惯文章目录前言代码实现定义异步处理工具类实现java线程池新建AppInit实现ApplicationRunner接口完成启动项目时异步数据初始化前言前面的工作中,为了提高地区数据的响应时间,需要加载全国区划数据到redis中缓存起来,这个过程希......
  • SpringBoot事件驱动开发
    应用启动过程生命周期事件感知(9大事件)、应用运行中事件感知(无数种)事件发布:ApplicationEventPublisherAware或注入:ApplicationEventMulticaster事件监听:组件+@EventListener场景:当用户登录后,我们需要为用户增加一个积分、随机获取一张优惠券、增加日志等,传统的开发模式......
  • SpringBoot事件和监听器
    事件和监听器生命周期监听场景:监听应用的生命周期监听器-SpringApplicationRunListener自定义SpringApplicationRunListener来监听事件;1.1.编写SpringApplicationRunListener实现类1.2.在META-INF/spring.factories中配置org.springframework.boot.SpringApplication......
  • [Springboot整合thymeleaf]处理js中的路径问题。
    使用了thymeleaf模板引擎之后,html中的标签,都可以直接替换成th:srcth:href但是处理js的中的资源路径并不是像jsp那么简单了。可以通过以下方式解决。<!--处理路径问题--><scriptth:inline="javascript">varpath=[[${#request.contextPath}]]</script><scriptth:inl......
  • 极速指南:在 SpringBoot 中快速集成腾讯云短信功能
    前言今天分享一个SpringBoot集成腾讯云短信的功能,平常除了工作,很多xdm做自己的小项目都可能用到短信,但自己去看文档挺费劲的,我这边就帮你节省时间,直接把步骤给你列出来,照做就行。实战1、申请密钥及签名模板首先,要使用腾讯云短信,你得先在腾讯云有个账号,申请密钥及签名模板。1)......
  • keycloak~为keycloak-services项目添加第三方模块(首创)
    我们在对keycloak框架中的核心项目keycloak-services进行二次开发过程中,发现了一个问题,当时有这种需求,在keycloak-services中需要使用infinispan缓存,我们直接添加infinispan-core引用之后,在启动keycloak进出错了,提示我们没有找到infinispan.Cache,于是我尝试了如下方法,最终解决了问......
  • SpringBoot——SSM简单整合v0.1
    学习SpringBoot初次整合SSM,后续需要不断优化参考SpringBoot3教程[1]导入依赖pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"......
  • Docker Service 创建
    DockerSwarmModeDockerSwarm集群搭建DockerSwarm节点维护DockerService创建service只能依附于dockerswarm集群,所以service的创建前提是,swarm集群搭建完毕。1.创建servicedockerservicecreate命令用于创建service,需要在manager中运行。与创建容器的命令dock......
  • 浅析SpringBoot加载配置的6种方式
    从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一,但就是这么常用的功能,仍然有很多开发者抓狂~今天带大家简单回顾一下这六种的使用方式:说明Environment对象Environment是springboot核心的环境配置接口,它提供了简单的方法来访问应用程序属性,包括系统属......