之前写过使用自定义的classLoader进行动态加载,热部署;它有很多弊端,我总结一下:

  1. 当前项目不能引用第三方包
  2. 当前项目必须使用反射的方式调用第三方包的方法
  3. 写死的一些路径

springloaded

源码:https://github.com/spring-projects/spring-loaded

功能:实现java项目的依赖包的热更新

研究了一天,终于研究出了成功了,国内也有不少这方面的文章,但也有一些坑,所以我总结一下:

实现方式

a-start-hot-dependency里有一个类


public class HelloImpl implements Hello {
@Override
public String password() {
return "hello 牛";
}
}

添加项目依赖

   <dependency>
<groupId>com.lind</groupId>
<artifactId>a-start-hot-dependency</artifactId>
<version>1.0.0</version>
</dependency>

依赖也里方法调用

  @GetMapping("auto")
public ResponseEntity auto() {
return ResponseEntity.ok(new HelloImpl().password());
}

部署方式

  1. 复制三个包到发布的目录springloaded-1.2.5.RELEASE.jar,a-start-hot-deploy-1.0.0.jar,a-start-hot-dependency-1.0.0.jar
  2. 使用java命令进行部署java -noverify -javaagent:D:/springloaded-1.2.5.RELEASE.jar -Dspringloaded="watchJars=a-start-hot-dependency-1.0.0.jar" -jar a-start-hot-deploy-1.0.0.jar
  3. 当前a-start-hot-dependency-1.0.0.ja有更新时,可以看到控制台的变化

看了很多文章,写的命令都有问题,最后还是机缘巧合的成功了!

java~通过springloaded实现热部署的更多相关文章

  1. 在oaf中集成SpringLoaded实现热部署

    首先声明:其实JRebel和Spring-Loaded就是一个开发环境下的利器,skip build and redeploy process,大大提升了工作效率!而非生产环境的利器... 不要在生产 ...

  2. IntelliJ IDEA 2017版 springloaded实现热部署

    1.配置pom.xml文档 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  3. Spring Boot学习总结(4)——使用Springloaded进行热部署

    我在开发的时候,总是会及时对自己的程序进行测试,总是频繁的重启web server,容器不烦我们都觉得烦了. dependencys目录下增加: <dependency> <grou ...

  4. 关于Maven打包Java Web项目以及热部署插件Jrebel的使用

    Java Web/Eclipse/Maven/Tomcat 最近有个新项目是java web项目,记录一下,可能比较乱.虽然没接触过Java,但是eclipse还是用过的 初识项目 同事说,项目是ma ...

  5. 使用spring-loaded开源项目,实现java程序和web应用的热部署

    JDK1.5之后提供了java.lang.instrument.Instrumentation,即java agent机制可以实现类的redefinition和retransform. redefin ...

  6. 深入探索 Java 热部署

    在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作.对于某些大型的应用来 ...

  7. 深入探索 Java 热部署--转

    在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作.本文将探索如何在不破 ...

  8. Java 热部署深入探索

    简介 在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作.对于某些大型的 ...

  9. 探索 Java 热部署

    在 JAVA 开发领域,热部署一直是一个难以解决的问题,目前的 JAVA 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作.对于某些大型的应用来 ...

随机推荐

  1. 前端基础——HTML(一)

    HTML html超文本标记语言 前端三层 HTML结构层 css样式层 JavaScript行为层 其他多媒体内容(图片,音频等等) 互联网运行过程 客 --http请求--> 服 户 htt ...

  2. Django( 学习第五部 Django之模板语法)

    目录 模板语法 --- 传值 摸板语法 --- 过滤器 模板语法 --- 标签 自定义过滤器.标签.inclusion_tag 模板的继承 模板语法 --- 传值 {{}}       变量相关 {% ...

  3. oblivious polynomial evaluation

    Oblivious polynomial evaluation is a protocol involving two parties, a sender whose input is a polyn ...

  4. Spring Boot打包部署

    date: 2018-11-19 15:30:11 updated: 2018-11-21 08:28:37 Spring Boot打包部署 第一种方式 打包成jar包部署在服务器上 1.1 添加插件 ...

  5. Centos 7 firewall 命令

    Centos 7 firewall 命令: 查看已经开放的端口: firewall-cmd --list-ports 开启端口 firewall-cmd --zone=public --add-por ...

  6. Maven打包过程

    1.安装maven 下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven- ...

  7. @Transactional 注意事项、方法调用

    1.同一个类中,即A与B在同一类中,A()调用B()方法,A不加 @Transactional 事务注解,B加 @Transactional 事务注解,则B中的事务不起作用,A加事务,才会起作用,B中 ...

  8. [Luogu P3723] [AH2017/HNOI2017]礼物 (FFT 卷积)

    题面 传送门:洛咕 Solution 调得我头大,我好菜啊 好吧,我们来颓柿子吧: 我们可以只旋转其中一个手环.对于亮度的问题,因为可以在两个串上增加亮度,我们也可以看做是可以为负数的. 所以说,我们 ...

  9. Oracle终极彻底卸载

    停止使用Oracle的服务 停用oracle服务,进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止. 运行卸载Oracle数据库程序 一般情况运行Oracle自带的卸载程序,如使 ...

  10. UOJ Round总结

    #22. [UR #1]外星人 一开始随便搞出第一问答案,很显然的性质对$x$有变化的$a$一定是递减的,就拿一个桶直接记录可以达到的值 然后我开始想第二问,一开始想直接在这个桶上统计答案,然后发现不 ...