spring-boot-beetl springdevtoolss 热部署在linux 系统有用吗

  使用工具:Eclipse
  Linux下JDK版本:jdk-7u79-linux-x64.tar.gz
一、打包成jar并部署
  步骤如下:
  首先上pom.xml:
1 &project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&
&modelVersion&4.0.0&/modelVersion&
&groupId&com.xxxe&/groupId&
&artifactId&programme&/artifactId&
&version&0.0.1&/version&
&packaging&jar&/packaging&
&name&programme&/name&
&url&http://maven.apache.org&/url&
&properties&
&project.build.sourceEncoding&UTF-8&/project.build.sourceEncoding&
&project.reporting.outputEncoding&UTF-8&/project.reporting.outputEncoding&
&/properties&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-parent&/artifactId&
&version&1.4.2.RELEASE&/version&
&dependencies&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-web&/artifactId&
&/dependency&
&dependency&
&groupId&junit&/groupId&
&artifactId&junit&/artifactId&
&scope&test&/scope&
&/dependency&
&dependency&
&groupId&org.springframework.data&/groupId&
&artifactId&spring-data-commons&/artifactId&
&/dependency&
&dependency&
&groupId&org.springframework.data&/groupId&
&artifactId&spring-data-jpa&/artifactId&
&/dependency&
&dependency&
&groupId&org.springframework.data&/groupId&
&artifactId&spring-data-jdbc-core&/artifactId&
&version&1.2.1.RELEASE&/version&
&/dependency&
&dependency&
&groupId&com.fasterxml.jackson.core&/groupId&
&artifactId&jackson-core&/artifactId&
&/dependency&
&dependency&
&groupId&com.fasterxml.jackson.core&/groupId&
&artifactId&jackson-annotations&/artifactId&
&/dependency&
&dependency&
&groupId&com.fasterxml.jackson.core&/groupId&
&artifactId&jackson-databind&/artifactId&
&/dependency&
&dependency&
&groupId&org.slf4j&/groupId&
&artifactId&slf4j-api&/artifactId&
&/dependency&
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpcore&/artifactId&
&/dependency&
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpclient&/artifactId&
&/dependency&
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpmime&/artifactId&
&/dependency&
&dependency&
&groupId&mysql&/groupId&
&artifactId&mysql-connector-java&/artifactId&
&/dependency&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-jdbc&/artifactId&
&/dependency&
&dependency&
&groupId&javax&/groupId&
&artifactId&javaee-api&/artifactId&
&version&7.0&/version&
&/dependency&
&dependency&
&groupId&org.apache.shiro&/groupId&
&artifactId&shiro-spring&/artifactId&
&version&1.2.3&/version&
&/dependency&
&dependency&
&groupId&org.apache.shiro&/groupId&
&artifactId&shiro-cas&/artifactId&
&version&1.2.3&/version&
<span style="color: #0
&/dependency&
<span style="color: #1
&dependency&
<span style="color: #2
&groupId&org.apache.shiro&/groupId&
<span style="color: #3
&artifactId&shiro-ehcache&/artifactId&
<span style="color: #4
&version&1.2.3&/version&
<span style="color: #5
&/dependency&
<span style="color: #6
&dependency&
<span style="color: #7
&groupId&org.springframework&/groupId&
<span style="color: #8
&artifactId&spring-jdbc&/artifactId&
<span style="color: #9
&/dependency&
<span style="color: #0
&dependency&
<span style="color: #1
&groupId&org.apache.shiro&/groupId&
<span style="color: #2
&artifactId&shiro-core&/artifactId&
<span style="color: #3
&version&1.2.3&/version&
<span style="color: #4
&/dependency&
<span style="color: #5
&dependency&
<span style="color: #6
&groupId&org.apache.shiro&/groupId&
<span style="color: #7
&artifactId&shiro-web&/artifactId&
<span style="color: #8
&version&1.2.3&/version&
<span style="color: #9
&/dependency&
<span style="color: #0
&dependency&
<span style="color: #1
&groupId&org.jasig.cas.client&/groupId&
<span style="color: #2
&artifactId&cas-client-core&/artifactId&
<span style="color: #3
&version&3.4.1&/version&
<span style="color: #4
&/dependency&
<span style="color: #5
<span style="color: #6
&!-- 模板引擎 暂时不用 --&
<span style="color: #7
&dependency&
<span style="color: #8
&groupId&org.springframework.boot&/groupId&
<span style="color: #9
&artifactId&spring-boot-starter-thymeleaf&/artifactId&
<span style="color: #0
&/dependency& --&
<span style="color: #1
<span style="color: #2
devtools可以实现热部署。devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的
<span style="color: #3
如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。
<span style="color: #4
设置 spring.devtools.restart.enabled 属性为false,可以关闭该特性。
<span style="color: #5
<span style="color: #6
<span style="color: #7
&dependency&
<span style="color: #8
&groupId&org.springframework.boot&/groupId&
<span style="color: #9
&artifactId&spring-boot-devtools&/artifactId&
<span style="color: #0
&optional&true&/optional&
<span style="color: #1
&!-- optional=true,依赖不会传递,--&
<span style="color: #2
&/dependency&
<span style="color: #3
<span style="color: #4
&/dependencies&
<span style="color: #5
<span style="color: #6
&!-- Package as an executable jar --&
<span style="color: #7
<span style="color: #8
&defaultGoal&compile&/defaultGoal&
<span style="color: #9
<span style="color: #0
<span style="color: #1
&groupId&org.springframework.boot&/groupId&
<span style="color: #2
&artifactId&spring-boot-maven-plugin&/artifactId&
<span style="color: #3
&configuration&
<span style="color: #4
&jvmArguments&-Dfile.encoding=UTF-8&/jvmArguments&
<span style="color: #5
&fork&true&/fork&&!-- 如果没有该项配置,可能devtools不会起作用 --&
<span style="color: #6
&/configuration&
<span style="color: #7
<span style="color: #8
<span style="color: #9
&/plugins&
<span style="color: #0
<span style="color: #1
<span style="color: #2
&!-- Add Spring repositories --&
<span style="color: #3
&!-- (you don't need this if you are using a .RELEASE version) --&
<span style="color: #4
<span style="color: #5
&repositories&
<span style="color: #6
&repository&
<span style="color: #7
&id&spring-snapshots&/id&
<span style="color: #8
&url&http://repo.spring.io/snapshot&/url&
<span style="color: #9
&snapshots&&enabled&true&/enabled&&/snapshots&
<span style="color: #0
&/repository&
<span style="color: #1
&repository&
<span style="color: #2
&id&spring-milestones&/id&
<span style="color: #3
&url&http://repo.spring.io/milestone&/url&
<span style="color: #4
&/repository&
<span style="color: #5
&/repositories&
<span style="color: #6
&pluginRepositories&
<span style="color: #7
&pluginRepository&
<span style="color: #8
&id&spring-snapshots&/id&
<span style="color: #9
&url&http://repo.spring.io/snapshot&/url&
<span style="color: #0
&/pluginRepository&
<span style="color: #1
&pluginRepository&
<span style="color: #2
&id&spring-milestones&/id&
<span style="color: #3
&url&http://repo.spring.io/milestone&/url&
<span style="color: #4
&/pluginRepository&
<span style="color: #5
&/pluginRepositories&
<span style="color: #6
<span style="color: #7
<span style="color: #8 &/project&
  1、工程--右键选择运行配置:
   在Goals中输入:org.apache.maven.plugins:maven-jar-plugin:2.4:jar org.springframework.boot:spring-boot-maven-plugin:1.0.1.RELEASE:repackage
  2、编译打包:工程--&Run As--& Maven build (编译)--- &Maven install(打包)
  3、获取jar包:在工程下的target文件夹下找到打包的jar文件;
  4、部署:springboot工程打包jar部署只需要jre坏境即可:
   文件结构如下:满足linux与windows机器部署需要,使用不同的jre
    文件说明:
        dev:部署的工程.jar所在文件夹;
        jre7: windows下的jre环境
        jer7-linux:linux下的jre环境
        application.properties: 主要配置文件
        pm-logback.xml :日志配置文件
        startup.bat:Windows启动命令;
set dir=%CD%
set JRE_HOME=%dir%\jre7
%dir%\jre7\bin\java -jar %dir%\dev\pm.jar
        startup.sh :Linux启动命令:
CUR_PATH=$(cd "$(dirname "$0")"; pwd)
echo "Current path: ${CUR_PATH}"
${CUR_PATH}/jre7-linux/bin/java -jar ${CUR_PATH}/dev/pm.jar
    5、启动是按照情况点击startup
二、打包成war并部署:
    官网的说明:
    好像不起作用,待研究!  
    又试了一下,完全按照官网是来是可以的! 
&  1、工程--pom.xml--&右键Run Config... &Goals输入package
  2、如果正常的话,可以在工程-target文件夹下找到打包好的
  3、部署:需要jre和tomcat,结构如下:
    war包放入tomcat文件夹中的webapps文件夹下;
    startup.bat:
set dir=%CD%
set JRE_HOME=%dir%\jre7
set JAVA_OPTS=-Dpm.home=%CD% -Dapp.home=%CD%
%dir%\apache-tomcat-<span style="color: #\bin
  startup.sh:所部署的机器必须有jre_home
CUR_PATH=$(cd "$(dirname "$<span style="color: #")"; pwd)
echo "Current path: ${CUR_PATH}"
cd ${CUR_PATH}/apache-tomcat-<span style="color: #/bin
export JAVA_OPTS="-Dpm.home=${CUR_PATH}"
./startup.sh start
cd ${CUR_PATH}
  4、启动,输入...../pm/
------------------------------
  关于配置文件放到外部的情况,正在研究......     
阅读(...) 评论()1778人阅读
相信大部分使用Intellij的同学都会遇到这个问题,即使项目使用了spring-boot-devtools,修改了类或者html、js等,idea还是不会自动重启,非要手动去make一下或者重启,
就更没有使用热部署一样。出现这种情况,并不是你的配置问题,相信自己,热部署那几个设置很简单,其根本原因是因为Intellij IEDA和Eclipse不同,Eclipse设置了自动编译之
后,修改类它会自动编译,而IDEA在非RUN或DEBUG情况下才会自动编译(前提是你已经设置了Auto-Compile)。
废话这么多,怎么解决呢?请耐心往下看。
首先,IDEA设置里面这里必须打勾
然后 Shift&#43;Ctrl&#43;Alt&#43;/,选择Registry
进去之后,找到如下图所示的选项,打勾
ok了,重启一下项目,然后改一下类里面的内容,IDEA就会自动去make了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1787次
排名:千里之外springboot&devtools&热部署
进行热部署,但是有部分代码修改了,并不会进行部署。今天我们介绍的这个通过重启的机制就可以解决这个问题了。
&&&&&&&我们今天要介绍的就是:spring-boot-devtools。
spring-boot-devtools&是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是比速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。
其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为&&restart
ClassLoader
,这样在有代码更改的时候,原来的restart
ClassLoader&被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间(5秒以内)。
那如何使用呢,大概两个步骤即可:
第一就是添加相应的依赖:
&&&&&&&&&/span&dependency&
&&&&&&&&&&&&&&/span&groupId&org.springframework.boot&/&/span&groupId&
&&&&&&&&&&&&&&/span&artifactId&spring-boot-devtools&/&/span&artifactId&
&&&&&&&&&&&&&&/span&optional&true&/&/span&optional&
&&&&&&&&&/&/span&dependency&
第二加点:仅仅加入devtools在我们的eclipse中还不起作用,这时候还需要添加的spring-boot-maven-plugin:
&&/span&build&
&&&&&&&&&/span&plugins&
&&&&&&&&&&&
&&&&&&&&&&&&&&/span&plugin&
&&&&&&&&&&&&&&&&&&/span&groupId&org.springframework.boot&/&/span&groupId&
&&&&&&&&&&&&&&&&&&/span&artifactId&spring-boot-maven-plugin&/&/span&artifactId&
&&&&&&&&&&&&&&&&&&/span&configuration&
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&/span&fork&true&/&/span&fork&
&&&&&&&&&&&&&&&&&/&/span&configuration&
&&&&&&&&&&&&&/&/span&plugin&
&&&&&&&&/&/span&plugins&
&&&&/&/span&build&
运行App.java&&----
Run Application --- Java Application即可进行测试。
不能使用分析:
(a)&&&&&对应的spring-boot版本是否正确,我这里使用的是1.3.3版本;
(b)&&&&&是否加入plugin了,以及属性&&/span&fork&true&/&/span&fork&
(c)&&&&&&Eclipse
Project&是否开启了Build Automatically(我自己就在这里栽了坑,不知道为什么我的工具什么时候关闭了自动编译的功能)。
(d)&&&&&如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。
关闭自动重启
设置&spring.devtools.restart.enabled&属性为false,可以关闭该特性。可以在application.properties中设置,也可以通过设置环境变量的方式。
public static void main(String[] args){
&& &System.setProperty("spring.devtools.restart.enabled","false");
&& &SpringApplication.run(MyApp.class, args);
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 spring boot devtool 的文章

 

随机推荐