spring boot入门之——热部署

场景:

  • 本地调试(频繁的启动/停止服务器)
  • 线上发布(每次都需要启动/停止服务器)

优点:

  • 无论本地还是线上,都适用
  • 无需重启服务器,提高开发、调试效率;提升发布、运维效率,降低运维成本

java实现热部署有哪几种方式?

  • 通过配置tomcat,直接把项目放在webapps里。
  • 在tomcat\conf\server.xml中的<host></host>中添加<context debug="0" docBase="" path="" privileged="true" reloadable="true"/>标签
  • 在tomcat\conf\Catalina\localhost中添加xml,关键属性<context docBase="" reloadable="true" />

实现一个Java类热加载的实例

//自定义类加载器,需实现findClass方法(核心类)
public class MyClassLoader extends ClassLoader {

	//定义加载的路径
	private String classPath;

	public MyClassLoader(String classPath) {
		//调用父类的加载器
		super(ClassLoader.getSystemClassLoader());
		this.classPath = classPath;
	}

	//1.重新findClass方法
	@Override
	protected Class<?> findClass(String name) throws ClassNotFoundException {
		byte[] b = this.loadData(name);
		return this.defineClass(name, b, 0, b.length);
	}

	//加载class文件中的内容
	private byte[] loadData(String name) {
		//.替换为//表示
		name = name.replaceAll(".", "//");
		try {
			FileInputStream is = new FileInputStream(new File(classPath + name + ".class"));
			ByteArrayOutputStream aos = new ByteArrayOutputStream();
			int b = 0;
			while((b = is.read())!=-1){
				aos.write(b);
			}
			is.close();
			aos.close();
			return aos.toByteArray();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return null;
	}
}

原文地址:http://blog.51cto.com/mazongfei/2141149

时间: 2024-10-08 04:03:29

spring boot入门之——热部署的相关文章

Spring Boot 2.0 热部署指南

Spring Boot 2.0 支持热部署,实现方法很简单 Spring Boot 2.0 有几种热重载的选项. 推荐的方法是使用spring-boot-devtools 因为它提供了额外的开发时间功能,例如支持快速应用程序重启和LiveReload以及合理的开发时配置(如模板缓存). Devtools通过监视类路径的变化来工作. 这意味着静态资源更改必须"建立",以使更改生效. 默认情况下,当您保存更改时,这会在Eclipse中自动发生. 在IntelliJ IDEA中,Make P

Spring Boot 五种热部署方式

[推荐]2019 Java 开发者跳槽指南.pdf(吐血整理)>>> 1.模板热部署 在SpringBoot中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存,如下: Thymeleaf的配置: spring.thymeleaf.cache=false FreeMarker的配置: spring.freemarker.cache=false Groovy的配置: spr

Spring boot 两种热部署方式 springloader 和 devtools

什么是热部署? 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用.在平时编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果要改变这样的方式,就需要用到热部署springloaded. 使用方式,在项目中的pom.xml中plugin里添加依赖: <dependencies> <!--springloaded hot deploy --> <dependency> <groupId>org.springframework&

161103、Spring Boot 入门

Spring Boot 入门 spring Boot是Spring社区较新的一个项目.该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验,让Java开发也能够实现Ruby on Rails那样的生产效率.为Spring生态系统提供了一种固定的.约定优于配置风格的框架. Spring Boot具有如下特性: 为基于Spring的开发提供更快的入门体验 开箱即用,没有代码生成,也无需XML配置.同时也可以修改默认值来满足特定的需求. 提

Spring Boot入门——文件上传与下载

Spring Boot入门--文件上传与下载https://www.cnblogs.com/studyDetail/p/7003253.html 1.在pom.xml文件中添加依赖 复制代码 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/

Spring Boot入门 and Spring Boot与ActiveMQ整合

1.Spring Boot入门 1.1什么是Spring Boot Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品.无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能. 虽然 Spring 的组件代码是轻量级的

构建微服务:Spring boot 入门篇

构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适). 使用spring boot有什

Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理

本文是接着上篇博客写的:Spring boot 入门(三):SpringBoot 集成结合 AdminLTE(Freemarker),利用 generate 自动生成代码,利用 DataTable 和 PageHelper 进行分页显示.按照前面的博客,已经可以搭建一个简单的 Spring Boot 系统,本篇博客继续对此系统进行改造,主要集成了 Shiro 权限认证框架,关于 Shiro 部分,在本人之前的博客(认证与Shiro安全框架)有介绍到,这里就不做累赘的介绍. 此系列的博客为实践部分

Spring Boot 入门之缓存和 NoSQL 篇(四)

原文地址:Spring Boot 入门之缓存和 NoSQL 篇(四) 博客地址:http://www.extlight.com 一.前言 当系统的访问量增大时,相应的数据库的性能就逐渐下降.但是,大多数请求都是在重复的获取相同的数据,如果使用缓存,将结果数据放入其中可以很大程度上减轻数据库的负担,提升系统的响应速度. 本篇将介绍 Spring Boot 中缓存和 NoSQL 的使用.上篇文章<Spring Boot 入门之持久层篇(三)>. 二.整合缓存 Spring Boot 针对不同的缓存