SpringBoot图文并茂带你掌握devtools热启动
目录
- 1.相关概念
- 2.下载安装
- 3.使用测试
- 4. 自动编译
1.相关概念
当开发者将spring-boot-devtools引入项目后,只要classpath路径下的静态资源文件发生了变化,项目就会自动重启,这极大地提高了项目的开发速度。如果开发者使用了Eclipse,那么在修改完代码并保存之后,项目将自动编译并触发重启,而开发如果使用了IntelliJ IDEA,默认情况下,需要开发者手动编译(Build Project)才会触发重启。
2.下载安装
pom.xml中导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency>
3.使用测试
未改变classpath路径下的文件时
application.properties
server.port=8080
改变application.properties
server.port=8081
Build一下, 无需关闭后在重启了
或者按Ctrl+F9, 项目就自动重启动了
修改java代码后也是一样的
Build一下
4. 自动编译
手动编译时,单击Build→Build Project菜单或者按Ctrl+F9快捷键进行编译,编译成功后就会触发项目重启。当然,使用IntelliJ IDEA的开发者也可以配置项目自动编译,配置步骤如下:
1.单击File→Settings菜单,打开Settings页面,在左边的菜单栏依次找到Build,Execution,Deployment→Compile,勾选Build project automatically。
2.按Ctrl+Shift+Alt+/快捷键调出Maintenance页面
3.单击Registry,在新打开的Registry页面中,勾选compiler.automake.allow.when.app.running复选框
做完这两步配置之后,若开发者再次在IntelliJ IDEA中修改代码,则项目会自动重启。
注意: classpath路径下的静态资源或者视图模板等发生变化时,并不会导致项目重启
这个时候修改java代码, 无需手动Build, 自动就重启动了
到此这篇关于SpringBoot图文并茂带你掌握devtools热启动的文章就介绍到这了,更多相关SpringBoot devtools内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
快速掌握SpringBoot应用的启动入口
目录 1.一切的开始 2.总结 Springboot可以说是Java程序员必备技能了,大家都知道Springboot最终可以通过maven打成jar包,然后直接使用java -jar命令运行一个Web工程(或其它).这样就避免了原先基于tomcat的web工程的复杂操作.Springboot能够使Web服务的部署简单到如此程度是因为其内置了Jetty(或Tomcat)服务器,并且在容器启动过程中start该服务器,成功运行Web服务. 本篇并不是深究内置服务器的启动过程,而是追溯Springbo
-
Springboot详解底层启动过程
目录 SpringApplication构造分析 SpringApplication run分析 SpringApplication构造分析 1.记录 BeanDefinition 源 spring容器刚开始是空的,要去各个源找到beanDefinition,这些源可能是配置类,可能是xml文件.在构造方法里会获取一个主源,也就是引导类,根据引导类去获取beanDefinition. 2.推断应用类型 根据jar包去判断是什么引用类型 3.记录 ApplicationContext 初始化器 对
-
SpringBoot中jar启动下如何读取文件路径
目录 SpringBoot jar启动下读取文件路径 代码如下 截图如下 SpringBoot获取路径的方式 前置条件 SpringBoot jar启动下读取文件路径 由于我们经常使用jar 包作为我们的项目启动方式 以及我们经常会设涉及到生成文件这时候就需要一个文件路劲存放临时文件 因为我们正在存放可以在第三方服务器或者自己文件服务器. 下面就介绍一种jar 下生成文件存放示例. 代码如下 @GetMapping("/index") public String getFile() t
-
Springboot启动后立即某个执行方法的四种方式
目录 注解@PostConstruct CommandLineRunner接口 实现ApplicationRunner接口 实现ApplicationListener 四种方式的执行顺序 总结 最新需要在项目启动后立即执行某个方法,然后特此记录下找到的四种方式 注解@PostConstruct 使用注解@PostConstruct是最常见的一种方式,存在的问题是如果执行的方法耗时过长,会导致项目在方法执行期间无法提供服务. @Component public class StartInit {
-
Springboot启动原理详细讲解
主启动类方法: @SpringBootApplication public class MyJavaTestApplication { public static void main(String[] args) { SpringApplication.run(MyJavaTestApplication.class, args); } } 点击进入方法 public static ConfigurableApplicationContext run(Class<?>[] primarySour
-
springboot项目启动后执行方法的三种方式
目录 1 方法 方法1:spring的ApplicationListener< ContextRefreshedEvent>接口 方法2:springboot的ApplicationRunner接口 方法3:springboot的CommandLineRunner接口 2 指定执行顺序 3 原理 springboot项目启动后执行方法,有三种实现方式. 1 方法 ApplicationListener< ContextRefreshedEvent> 不推荐 ApplicationL
-
Springboot项目启动到一半卡住了,不报错问题及解决
目录 项目启动到一半卡住了,不报错 无法正常启动很慢但也不报错 项目启动到一半卡住了,不报错 今天启动项目时,启动到一半卡住了,不报错,开始我以为是timeout,后来发现不是这个原因. 然后在网上找了很多资料,有些说是日志Jar包递归了,可是我同事本地跑起来却没有错,找了好久的原因,然后我想着重新import下pom.xml,重新部署jar包,果不其然,可以了. 无法正常启动很慢但也不报错 Debug启动缓慢,导致卡住 由于启动断点过多的形式,需在IDEA一下去除断点 以上为个人经验,希望能给
-
详解SpringBoot启动代码和自动装配源码分析
目录 一.SpringBoot启动代码主线分析 二.SpringBoot自动装配原理分析 1.自动装配的前置知识@Import 2.@SpringApplication注解分析 2.1@SpringBootConfiguration 2.2@EnableAutoConfiguration 随着互联网的快速发展,各种组件层出不穷,需要框架集成的组件越来越多.每一种组件与Spring容器整合需要实现相关代码.SpringMVC框架配置由于太过于繁琐和依赖XML文件:为了方便快速集成第三方组件和减少
-
SpringBoot图文并茂带你掌握devtools热启动
目录 1.相关概念 2.下载安装 3.使用测试 4. 自动编译 1.相关概念 当开发者将spring-boot-devtools引入项目后,只要classpath路径下的静态资源文件发生了变化,项目就会自动重启,这极大地提高了项目的开发速度.如果开发者使用了Eclipse,那么在修改完代码并保存之后,项目将自动编译并触发重启,而开发如果使用了IntelliJ IDEA,默认情况下,需要开发者手动编译(Build Project)才会触发重启. 2.下载安装 pom.xml中导入依赖 <depen
-
一篇文章带你搞定SpringBoot中的热部署devtools方法
一.前期配置 创建项目时,需要加入 DevTools 依赖 二.测试使用 (1)建立 HelloController @RestController public class HelloController { @GetMapping("/hello") public String hello(){ return "hello devtools"; } } 对其进行修改:然后不用重新运行,重新构建即可:只加载变化的类 三.热部署的原理 Spring Boot 中热部
-
SpringBoot图文并茂讲解登录拦截器
目录 1.相关概念 1.实现效果 2.实现步骤 2.代码实现 1.配置文件 2.java代码 3.前端代码 3.运行测试 1.相关概念 1.实现效果 当没有输入正确的账号密码登录成功时, 除了登录页,其他页面都无法访问(静态资源要放行) 2.实现步骤 编写一个拦截器实现HandlerInterceptor接口 拦截器注册到容器中(实现WebMvcConfigurer的addInterceptors()) 指定拦截规则(注意,如果是拦截所有,静态资源也会被拦截) 2.代码实现 1.配置文件 pom
-
使用Springboot注入带参数的构造函数实例
我们使用@Service注解一个service,默认注入的是不带参的构造函数,如果我们需要注入带参的构造函数,怎么办? 使用@Configuration+ @Bean注解来实现注入: @Configuration public class BlockChainServiceConfig { @Bean BlockChainService blockChainService(){ return new BlockChainService(1); } } service类 public class
-
详解springboot项目带Tomcat和不带Tomcat的两种打包方式
1,带Tomcat的打包方式 1.1, 在pom.xml文件添加以下配置(目的:自定main入口和跳过Junit代码) <build> <plugins> <!--打包为jar时指定main入口--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <
-
springBoot 插件工具热部署 Devtools的步骤详解
第一步添加jar包: <!-- 这个依赖是热部署的(devtools)--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> <
-
Springboot自带定时任务实现动态配置Cron参数方式
目录 Springboot自带定时任务实现动态配置Cron参数 SpringBoot定时任务的四种实现方式(主要) spring动态配置cron表达式,不需要停服 SchedulingConfigurer接口实现动态加载cron表达式 Springboot自带定时任务实现动态配置Cron参数 同学们,我今天分享一下SpringBoot动态配置Cron参数.场景是这样子的:后台管理界面对定时任务进行管理,可动态修改执行时间,然后保存入库,每次任务执行前从库里查询时间,以达到动态修改Cron参数的效
-
SpringBoot图文并茂讲解依赖管理的特性
目录 1.父依赖parent介绍 2.修改默认版本号 3.starter场景启动器 1.父依赖parent介绍 pom文件中含有父依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </pa
-
SpringBoot图文并茂详解如何引入mybatis与连接Mysql数据库
目录 创建一个SpringBoot项目 创建mysql表 编写实体类 配置Mapper 感叹 创建一个SpringBoot项目 其他不赘叙了,引入MyBaties.MySql依赖 创建mysql表 CREATE TABLE sp_users( `id` INT PRIMARY KEY, `username` VARCHAR(30), `age` INT ); 刚开始一直出现这个错误,弄的我怀疑人生,结果是最后一行不能加',' ,物是人非. INSERT INTO sp_users(id,`use
-
SpringBoot图文并茂讲解Lombok库的安装与使用
目录 1.相关介绍 2.安装步骤 1.添加依赖 2.安装插件 3.使用注解 1.相关介绍 Lombok是一个通过注解以达到减少代码的Java库,如通过注解的方式减少get,set方法,构造方法等, 同时可以自动化日志变量. 2.安装步骤 1.添加依赖 在pom.xml中添加lombok的依赖 <!--lombok依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>
随机推荐
- Angular2 (RC4) 路由与导航详解
- Lua性能优化技巧(三):关于表
- Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办
- jQuery事件绑定和委托实例
- 详解PHP的Laravel框架中Eloquent对象关系映射使用
- Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
- 使用JS进行目录上传(相当于批量上传)
- nodejs操作mysql实现增删改查的实例
- PHPMailer使用教程(PHPMailer发送邮件实例分析)
- js jquery分别实现动态的文件上传操作按钮的添加和删除
- 浅析Python编写函数装饰器
- 详解webpack分离css单独打包
- jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
- java+jquery处理xml数据的方法
- 情人节之礼 js项链效果
- 怎么限制input的text里输入的值只能是数字(正则、js)
- php中判断文件空目录是否有读写权限的函数代码
- Android触摸及手势操作GestureDetector
- JavaScript获取GridView选择的行内容
- php查询内存信息操作示例