1.热部署和热加载的区别:
部署: 就是将整个应用重新启动
加载: 只替换更改的class文件,重新加载class(原理:容器启动时候,后台启动一条线程,定时检测文件的时间戳变化,变化的就重新载入)
都是基于Java的类加载器实现的;
2.热部署:
1). 直接将项目web文件夹放在Tomcat的webapps里(tomcat自带的热部署方式)
2). 在tomcat/conf/server.xml文件中的<host><host/>添加<context/>标签
<Context debug="0" docBase="D:/Imooc/web" path="/**" privileged="true" reloadable= "true"/>
docBase-->指定该项目路径,META-INF、WEB-INF那一层复制进去
path-->虚拟路径
3). 在%tomcat_home%/conf/Catalina/localhost中添加一个**.xml文件(文件名为项目名,即path名)
<context docBase="D:/Imooc/web" reloadable="true"/>
3.自己实现java热加载
写的东西没起作用(IDEA默认不支持热部署),代码就不粘了,以后搞明白了再写;
4.Springboot热部署实现<IDEA不支持,Eclipse可以,呵呵,都用springboot了,为什么还要用Eclipse>
1).SpringLoaded实现
① Maven启动方式
打开cmd,在项目目录下面输入命令 mvn spring-boot:run
<注:需要先配置好maven环境变量>
② run as - java application
下载springloaded-1.2.6.RELEASE.jar
配置启动参数<不同工具地方不一样> VM arguments: -javaagent:**/springloaded-1.2.6.RELEASE.jar -noverify
启动即可;
2). spring-boot-devtools热部署实现
pom.xml直接添加依赖
直接启动项目即可
5.Spring Boot项目发布方式
1). jar包
打包之后,直接命令启动 java -jar ****.jar
2). war包,发布到Tomcat
① 修改打包方式为war:
② 引入tomcat环境依赖
③ 启动类继承SpringBootServletInitializer,并重写configure方法
④ 项目打包之后,发布到tomcat的webapps目录下,tomcat解压后得到的文件夹的名称,就是服务路径名(应该可以修改)
<第一篇博客写完了,有什么疑问或错误,欢迎指正,我会及时给与回复>