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-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南