所需知识准备 Springboot、继承、多态、面向接口编程、注解、spring底层机制
基本原理
- spring的controller内部Bean是final的单例模式,在系统初始化的时候可以进行引用对象覆盖
- spring打包的时候,不需要默认的
文章图片
3. 静态类和静态方法是无法进行重写的
4. 使用一个接口,来派生出多个接口实现类,达到高可用状态
5. 不使用@SpringBootApplication启动的情况下,可以使用自定义来确定启动类

文章图片
6. 配置类需要设定spring的bean扫描包信息

文章图片
具体例子
基础平台
首先创建第一个spingboot的项目(以下简称A项目),如果不知道如何创建springboot项目,请自行百度。
在A项目中的pom.xml文件中去除spring打包配置,进行删除

文章图片
设置本地maven工具包。具体相关的maven包,请查看附件

文章图片
在pom文件中设置maven发包配置

文章图片
编写自己的service接口

文章图片
编写自己的service实现类

文章图片
编写自己的controller

文章图片
编写spring启动文件,并且设置controller扫描路径(如果和controller在同一级下面就不用设置)

文章图片
编写对外支持的spring配置文件信息,并且设置扫描路径(controller和service)

文章图片
编写配置文件信息,设置spring的初始化类

文章图片
点击运行,查看是否运行成功,注意如果存在端口冲突,可以在application.properties中设置server.post:端口号

文章图片
发包到私服上面去,如果是重复发布需要先删除私服上面的包或者设置私服可以重复发布。每次发布必须版本号更新。Maven执行顺序,clean,complie,deploy

文章图片
查看私服上面有没有包文件。

文章图片
其他平台或产品平台
首先创建spingboot的项目(以下简称B项目),如果不知道如何创建springboot项目,请自行百度。
设置本地maven工具包。具体相关的maven包,请查看附件

文章图片
在B项目中的pom.xml文件中引用A项目

文章图片
在pom文件中设置maven发包配置

文章图片
可以重写引用包的servier实现,用继承或者接口进行实现。建议使用继承

文章图片
重写service实现,需要加入配置文件重新写Bean信息,切记如果A项目中对于Service定义了Bean的名字,那么重写以后,定义Bean的时候,必须要名字一样。
例如:A项目中定义了service的名字叫做testService,
B项目中如果重写了,必须要在配置文件中重写Bean的申明。而且名字必须一样。
下图1中:由于我是按照接口进行申明的,所以,返回的是接口类型。而实际的是类的初始化。
另:如果controller(Service)中父类注入了其他的bean信息,可以直接在初始化方法里面进行注入。Spring会默认注入相关参数。详情见下图2,

文章图片
图1

文章图片
图2
重写controller和service是一样的操作步骤,都是注意bean的名字信息必须一致

文章图片

文章图片
启动项目
启动以后,就可以查看到映射的地址和基础平台里面的一样。而加载的类是不一样的

文章图片
检查
1.加载的是二开平台或产品平台重写过的数据信息

2..如果没有重写,加载的是基础平台返回的数据信息

文章图片
3.service重载了也是一样的
【java|关于如何重写Controller和Service技术攻关文档】

文章图片
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)