SPRINGBOOT 热加载JAR包
2021/12/21 23:49:32
本文主要是介绍SPRINGBOOT 热加载JAR包,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.概要
springboot 的程序一般打包程jar包。我们有些情况下,我们需要对程序进行扩展,我们没办法对已打包的程序进行修改。
我们希望的做法是:
1.将我们的一些接口打包。
2.在扩展包时,我们引入接口包。
3.实现接口后,打成JAR包。
4.动态加载这些jar包,让后将我们的类动态注册到spring容器中。
2.实现过程
2.1 定义接口
package com.redxun.handler; public interface IDemoHandler { String handler(String name); }
我们将这个接口打包。
2.2 实现接口
<dependency> <groupId>org.redxun</groupId> <artifactId>interface</artifactId> <version>1.0</version> </dependency>
引入接口包
package com.example.demo; import com.redxun.handler.IDemoHandler; public class DemoHandler implements IDemoHandler { @Override public String handler(String s) { System.err.println("hello world"); return "hello:" +s; } }
实现接口。
2.3 动态加载JAR包
@RestController @RequestMapping("/user/org/osUser") public class DemoController { @GetMapping(value = "loadClass") public String loadClass() throws ClassNotFoundException { String pluginClass="com.example.demo.DemoHandler"; ClassLoader classLoader = ClassLoaderUtil.getClassLoader("file:/D:/demo-1.0.jar"); Class<?> clazz = classLoader.loadClass(pluginClass); SpringUtil.registerBean("demoHandler",clazz); IDemoHandler plugin = (IDemoHandler)SpringUtil.getBean("demoHandler"); String str= plugin.handler("RAY"); return str; } }
这样我们就实现了动态扩展,使用这种方式,我们就可以使用插件的方式对我们的微服务应用进行扩展
这篇关于SPRINGBOOT 热加载JAR包的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求