【SpringMVC】Jrebel 插件实现热部署与文件上传(上)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 【SpringMVC】Jrebel 插件实现热部署与文件上传(上)

一、JRebel

1.1 Jrebel介绍

       JRebel是一个Java开发工具,它是一款用于实时代码重载的插件。它的主要功能是在不重新启动应用程序的情况下,将修改后的Java代码实时应用到正在运行的应用程序中,从而加快开发周期,提高开发效率。

  1. 实时代码重载:JRebel可以监测开发人员对Java代码的修改,并将这些修改实时应用到正在运行的应用程序中,无需重新启动应用程序。这样,开发人员可以立即看到他们的代码更改的效果,节省了重新编译和部署的时间。
  2. 支持多种框架和服务器:JRebel支持多种Java框架和服务器,包括Spring、Hibernate、Java EE、Tomcat、Jetty等。无论是开发Web应用程序还是企业级应用程序,JRebel都可以与常用的开发框架和服务器集成,提供实时代码重载的功能。
  3. 高度兼容性:JRebel与大多数Java开发工具和集成开发环境(IDE)兼容,如Eclipse、IntelliJ IDEA、NetBeans等。开发人员可以在他们喜欢的IDE中使用JRebel插件,无需切换到其他工具。
  4. 快速部署:JRebel可以加快应用程序的部署速度,因为它只需要将修改后的代码应用到运行中的应用程序,而不需要重新启动整个应用程序。这对于大型应用程序和复杂的部署环境特别有用。
  5. 支持多种开发场景:JRebel可以应用于各种开发场景,包括本地开发、远程开发、云开发等。无论是单机开发还是分布式开发,JRebel都可以提供实时代码重载的功能。

       总的来说,JRebel是一个强大的Java开发工具,它通过实时代码重载的功能,使开发人员能够在不重新启动应用程序的情况下,快速应用他们对Java代码的修改。这大大提高了开发效率,减少了开发周期,使开发人员能够更专注于代码的编写和调试。

1.2 Jrebel插件下载

打开IDEA,选择File—>Settings—>Plugins—>在搜索框输入jrebel

1.3 Jrebel服务下载并启动

首先下载服务,进入GitHub网址Release v1.4 · ilanyu/ReverseProxy · GitHub

下载到指定位置后双击启动即可,如下图:

启动后,就可以打开idea进行激活,如不打开服务则会出现如下错误:

1.4 在线生成GUID

在线生成GUID网址:GUID online erstellen

如果失效刷新GUID替换就可以!

1.5 JRebel激活

服务器地址:https://127.0.0.1:8888/{GUID}

输入服务器地址,将{GUID}替换成上面的字符串,注意要除去{},然后再输入邮箱,只需正确的邮箱格式即可。

最后成功的界面:

        安装成功之后就可以通过JRebel启动项目。这样修改完Java代码后,就可以不再需要重启服务器这样浪费时间的操作了。

1.6 相关设置

1. 设置成离线工作模式

设置成离线模式后就不需要启动 ReverseProxy_windows_amd64 服务了

点击设置成离线模式后,如下图:

2. 设置自动编译

要想实现热部署,首先需要对Intellij按如下进行设置:

       由于JRebel是实时监控class文件的变化来实现热部署的,所以在idea环境下需要打开自动变异功能才能实现随时修改,随时生效。

注意事项

       通过Jrebel启动项目之前需要打开Jrebel服务,不然就会出错,正确启动项目后不要把服务关闭,先关服务器(tomcat)再关掉Jrebel服务。如需使用离线模式,也不能先关jrebel服务,设置好、关掉tomcat最后才关Jrebel服务,之后就再也不需要开启Jrebel服务就可以直接通过Jrebel启动项目了。

二、文件上传、下载

2.1 导入pom依赖

 <commons-fileupload.version>1.3.3</commons-fileupload.version>
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>${commons-fileupload.version}</version>
    </dependency>

2.2 配置文件上传解析器

在spring-mvc.xml文件中添加文件上传解析器。

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- 必须和用户JSP 的pageEncoding属性一致,以便正确解析表单的内容 -->
    <property name="defaultEncoding" value="UTF-8"></property>
    <!-- 文件最大大小(字节) 1024*1024*50=50M-->
    <property name="maxUploadSize" value="52428800"></property>
    <!--resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常-->
    <property name="resolveLazily" value="true"/>
</bean>

       这段代码配置了一个名为"multipartResolver"的Bean,用于处理文件上传。通过设置"defaultEncoding"属性、"maxUploadSize"属性和"resolveLazily"属性,可以指定文件上传时的字符编码、最大上传大小和延迟文件解析的行为。这样,Spring框架在处理文件上传时会根据这些配置进行相应的解析和限制。

2.3 文件上传表单设置

       定义一个简单的文件上传表单页面,设置enctype属性指定了表单数据的编码类型为"multipart/form-data",这是用于支持文件上传的编码类型。然后设置上传的文件将会被命名为"imgFile"用于被后台接受,最后将文件上传到指定的URL。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <base href="${pageContext.request.contextPath }">
    <title>文件上传</title>
</head>
<body>
<form action="/file/upload" method="post" enctype="multipart/form-data">
    <label>编号:</label><input type="text" name="id" readonly="readonly" value="${param.id}"/><br/>
    <label>图片:</label><input type="file" name="imgFile"/><br/>
    <input type="submit" value="上传图片"/>
</form>
</body>
</html>
相关文章
|
8月前
|
前端开发 应用服务中间件
SpringMVC 文件上传 消息 Required request part ‘file‘ is not present描述 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者
SpringMVC 文件上传 消息 Required request part ‘file‘ is not present描述 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者
639 0
|
9月前
|
前端开发 Java 应用服务中间件
SpringMVC之文件上传下载以及jrebel的使用
SpringMVC之文件上传下载以及jrebel的使用
51 0
|
10月前
|
存储 前端开发 Java
【SpringMVC】文件上传与下载、JREBEL使用
它可以让用户上传文件到服务器或者从服务器下载文件。这对于许多Web应用程序来说是必不可少的功能,比如在线存储、文档管理系统等。SpringMVC提供了一些方便的注释和API,可以使文件上传和下载变得非常简单。在文件上传方面,SpringMVC提供了。类,可以轻松地处理上传的文件。在文件下载方面,SpringMVC提供了。在你的spring mvc里面的pom.xml里面添加文件上传的依赖。并且下载,安装成功之后会让你重启,重启之后按操作来。根据自己的表来也是可以的,只是用来保存数据。
|
10月前
|
前端开发
SpringMVC文件上传、文件下载多文件上传及jrebel的使用与配置3
SpringMVC文件上传、文件下载多文件上传及jrebel的使用与配置3
41 0
|
10月前
SpringMVC文件上传、文件下载多文件上传及jrebel的使用与配置2
SpringMVC文件上传、文件下载多文件上传及jrebel的使用与配置2
31 0
|
10月前
|
前端开发 文件存储 数据库
SpringMVC文件上传、文件下载多文件上传及jrebel的使用与配置1
SpringMVC文件上传、文件下载多文件上传及jrebel的使用与配置1
54 0
|
2月前
|
前端开发 Java Apache
JAVAEE框架技术之6-springMVC拦截器和文件上传功能
JAVAEE框架技术之6-springMVC拦截器和文件上传功能
85 0
JAVAEE框架技术之6-springMVC拦截器和文件上传功能
|
18天前
|
XML 前端开发 Java
SpringMVC的架构有什么优势?——异常处理与文件上传(五)
SpringMVC的架构有什么优势?——异常处理与文件上传(五)
|
10月前
|
存储 前端开发 Java
【SpringMVC】一行代码完成文件上传&JRebel的使用
【SpringMVC】一行代码完成文件上传&JRebel的使用
51 0
|
2月前
|
前端开发 JavaScript Java
Spring Boot中Spring MVC的基本配置讲解与实战(包括静态资源配置,拦截器配置,文件上传配置及实战 附源码)
Spring Boot中Spring MVC的基本配置讲解与实战(包括静态资源配置,拦截器配置,文件上传配置及实战 附源码)
98 1