热部署

我们程序员在开发web项目的时候,避免不了需要将项目放到tomcat或者其他web容器中运行测试,而所有的程序员都有个习惯,从来都是以debug模式启动的(就好像谁不是这样启动就不是优秀的程序员似的)。这样做一方面可以打断点调式,二来我们修改了代码后不需要重新启动服务器。

我们称之为热部署,spring boot有个专门支持热部署的配置

在pom.xml文件中添加依赖:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>

这样不管启动类是怎么运行的,只要项目中的代码有所改动,项目会很快自动重启生效。

当然,想要在控制台看到重启的效果,需要添加插件:

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

添加自定义拦截器

通常我们在做web开发的时候,有时候需要编写自己的拦截器(Interceptor),我们一般这样做:

  1. 编写自己的拦截器MyInterceptor,实现HandlerInterceptor接口,重写里面的方法afterCompletion,postHandle或者preHandle。

    2.在springmvc.xml文件中像这样配置:

那么在springboot项目中我们没有写springmvc.xml文件,我们可以这样做:

  1. 同上,写自己的拦截器,实现HandlerInterceptor接口,重写里面的方法。

   2.上面是通过配置xml文件的方式将拦截器加载到项目中的,我们在springboot里面需要写一个配置类来完成,如下:

  两者完全等效。

端口和上下文路径

可以通过修改application.properties,修改访问的端口号和上下文路径

server.port=8888

server.context-path=/test

原来访问localhost:8080/index

现在就是localhost:8888/test/index

如果你使用的是application.yml

配置就是:

server:

port: 8888

context-path: /test

注意:每下一级前面推两格,冒号后面推一个空格。

配置切换

有时候在本地测试是使用8080端口,可是上线使用的又是80端口。 此时就可以通过多配置文件实现多配置支持与灵活切换。

3个配置文件:

核心配置文件:application.properties

开发环境用的配置文件:application-dev.properties

生产环境用的配置文件:application-pro.properties

这样就可以通过application.properties里的spring.profiles.active 灵活地来切换使用哪个环境了。

application.properties

spring.mvc.view.prefix=/WEB-INF/jsp/

spring.mvc.view.suffix=.jsp

spring.profiles.active=pro

application-dev.properties

server.port=8080

server.context-path=/test

application-pro.properties

server.port=80

server.context-path=/

当然,不仅可以通过修改application.properties文件进行切换,还可以在部署环境下,指定不同的参数来确保生产环境总是使用的希望的那套配置。

java -jar target/springboot-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro

或者

java -jar target/springboot-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

这样就可以保证在开发环境总是用的8080端口,而到了生产环境用的80端口,免去了每次上线还要修改端口号的麻烦。

DEBUG启动

springboot项目在开发期间,我们经常需要debug模式启动。

但是,我们每次启动都会停留在这个地方:

然后点下F8完成启动。这就很烦了!!!

那么我们需要设置一下,解决这个麻烦。

选择eclipse  ->window  ->  Preferences  ->  Java ->  Debug

去掉选项“Suspend execution on uncaught exceptions”前面框框里面的勾。

点击应用并关掉。

再次Debug启动springboot项目,就不会在那个地方停一下了。

springboot(七)-系列功能配置的更多相关文章

  1. springBoot基础系列--properties配置

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7183408.html SpringBoot中免除了大部分手动配置,但是对于一些特定的情况, ...

  2. 【SpringBoot 基础系列】实现一个自定义配置加载器(应用篇)

    [SpringBoot 基础系列]实现一个自定义配置加载器(应用篇) Spring 中提供了@Value注解,用来绑定配置,可以实现从配置文件中,读取对应的配置并赋值给成员变量:某些时候,我们的配置可 ...

  3. 7.oracle学习门户系列七---网络管理和配置

    oracle学习门户系列七 网络管理和配置 们学习了模式和用户.包含模式定义以及模式的作用. 这篇我么来看下ORACLE数据库中的网络管理和配置.只是这篇好像和上篇没有继承啊.这怎么看? Ok,事实上 ...

  4. springboot情操陶冶-web配置(七)

    参数校验通常是OpenApi必做的操作,其会对不合法的输入做统一的校验以防止恶意的请求.本文则对参数校验这方面作下简单的分析 spring.factories 读者应该对此文件加以深刻的印象,很多sp ...

  5. SpringBoot基础系列-SpringBoot配置

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9990680.html SpringBoot基础系列-SpringBoot配置 概述 属性 ...

  6. OpenvSwitch系列之五 网桥特性功能配置

    Open vSwitch系列之一 Open vSwitch诞生 Open vSwitch系列之二 安装指定版本ovs Open vSwitch系列之三 ovs-vsctl命令使用 Open vSwit ...

  7. SpringBoot基础系列之自定义配置源使用姿势实例演示

    [SpringBoot基础系列]自定义配置源的使用姿势介绍 前面一篇博文介绍了一个@Value的一些知识点,其中提了一个点,@Value对应的配置,除了是配置文件中之外,可以从其他的数据源中获取么,如 ...

  8. SpringBoot基础系列-SpringCache使用

    原创文章,转载请标注出处:<SpringBoot基础系列-SpringCache使用> 一.概述 SpringCache本身是一个缓存体系的抽象实现,并没有具体的缓存能力,要使用Sprin ...

  9. SpringBoot基础系列-使用日志

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9996897.html SpringBoot基础系列-使用日志 概述 SpringBoot ...

随机推荐

  1. M(必备),R(需求),C(条件),O(可选)

    M:must 必备 R:request 需求 C:condition 条件 O:option 可选 AFL:application file locator 应用文件定位器 PKI:公钥索引 IPK: ...

  2. 编写高质量代码改善C#程序的157个建议——建议7: 将0值作为枚举的默认值

    建议7: 将0值作为枚举的默认值 允许使用的枚举类型有byte.sbyte.short.ushort.int.uint.long和ulong.应该始终将0值作为枚举类型的默认值.不过,这样做不是因为允 ...

  3. 20169219 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 一.程序设计中临时变量的使用 任务: //定义一个数组 int arr[] = {1,2,3,4,5,6,7,8}; //打印原始数组的值 for(int i:arr ...

  4. Thumbnail 图片帮助

    public class Thumbnail { private Image srcImage; private string srcFileName; /// <summary> /// ...

  5. Boost 安装详解

    一 Linux(redhat)篇 1.1 获取boost库 解压tar -zxvf boost_1.48.0.tar.gz 进入解压目录cd boost_1_48_0 1.2 编译安装 使用下面的命令 ...

  6. MVC区域路由配置

  7. 基于zookeeper实现高性能分布式锁

    实现原理:利用zookeeper的持久性节点和Watcher机制 具体步骤: 1.创建持久性节点 zkLock 2.在此父节点下创建子节点列表,name按顺序定义 3.Java程序获取该节点下的所有顺 ...

  8. c编译错误[Error] ld returned 1 exit status 解决

    [Error] ld returned exit status 编译的过程中出现这个错误极有可能是因为函数名错误引起的,因此回到源码中观察函数名,尤其是那些库函数中的函数.

  9. docker概述及基础操作

    docker概述 容器技术已经成为应用程序封装和交付的核心技术容器技术的核心有以下几个内核组成CGroups-资源管理NamsSpace-进程管理SElinux-安全 由于是在物理机上实施隔离,启动一 ...

  10. requests利用selenium,代理Ip,云打码,验证码抠图操作 爬取搜狗微信公众号内容

    爬取思路,爬取搜狗微信公众号内容,爬取第一层url时请求太快出现验证码,我这里用的蘑菇云代理,并在程序中我判断什么情况下是否+代理,做到合理运用代理ip.爬取第二层url时验证码出现次数更严重(和第一 ...