SpringBoot2.x系列教程04--SpringBoot之自定义Web端口及开启日志功能
SpringBoot2.x系列教程04--SpringBoot配置之自定义Web端口及开启日志功能
前言
上一章节中带各位玩了个花样配置,设置了一个自定义的Banner图,而且 还给各位留了个作业,让大家设计一个图片给我看看,是不是都设计好了呢?
今天 壹哥 带各位再学习其他的一些花样技巧,比如设置自定义的Web端口号,启动Log日志功能等,这些可不是花架子了哦,这些都是很有用的实战技巧,这些都是我们项目开发时必须配置的设置。
一. 修改端口号和访问路径
我们知道,在任何一个Web项目中,都需要设置一个Web端口号,比如80、8080、8081等端口号。有的小伙伴说,我就没设置过端口号也没问题啊!你没配置过,那是因为使用的是默认的80或者8080端口,没有端口号是不可能的!但是有时候我们就不想用80和8080端口,或者这两个端口被别的程序给占用了,那怎么办呢?
自定义呗!
今天 壹哥 就带各位自定义这个Web端口号,这在SpringBoot中是很容易就可以实现的。
1. 创建application.properties文件
在Spring Boot 项目中,我们可以创建一个全局的配置文件application.properties
或者是 application.yml
,该文件需要存放在 resources
目录下或者类路径下的 /config
目录中,一般我们都放到 resources
下。
结合之前的章节,我们首先创建一个SpringBoot项目,然后在该项目的src/main/resource目录下,创建application.properties格式的配置文件。我们直接通过New按钮选择File,文件后缀修改成properties即可。
这个文件的名称必须是application.properties哦。
把文件保存在resources目录下。
2. 修改端口号与访问路径
application.properties配置文件创建之后,我们就可以进行自定义配置了。这里我把 tomcat 的端口修改为8088,并将默认的访问根路径 "/" 修改为 "/oa"。
application.properties
文件的配置如下:
server.port=8088
server.servlet.context-path=/oa
当然SpringBoot项目中,也有另一种配置文件的格式yml,如果是application.yml文件,则配置格式如下:
server:
port: 8088
servlet:
context-path: /oa
3. 创建一个Controller
为了验证我们的项目是否配置完毕了,这里 简单创建了一个Controller接口,各位随意创建即可。
4. 测试效果
接下来我们就把项目启动起来,我们在控制台可以看到如下效果,会发现我们项目的根路径此时已经变成了”/oa“,而不再是之前默认的”/“。
我们打开浏览器,就可以利用http://localhost:8088/oa/hi这个地址来访问我们的接口了。
如果你想进行跟多的配置,请参考如下链接。
二. 日志配置
1. 日志功能配置
除了可以自定义Web端口与项目根路径之外,SpringBoot中还运行我们灵活的进行日志的开关设置。在Spring Boot中,对各种常用的日志框架都做了支持,我们可以通过配置文件来修改默认的日志开关配置。默认情况下,Spring Boot 使用 Logback 作为日志框架。
接下来我们在application.properties文件中,设置日志文件的存储位置,以及日志的级别,如下所示:
logging.file.path=../logs/spring-boot-hello.log
logging.level.org.springframework.web=DEBUG
如果你使用的是application.yml配置文件,可以是如下写法:
logging:
file:
path:../logs/spring-boot-hello.log
level.org.springframework.web: DEBUG
完整的代码格式如下图所示,各位可以参考。
2. 启动测试
等我们把项目重新启动起来,找到自己项目日志所设置的盘符,就可以看到有一个logs日志目录,存放了本项目的日志信息,如下图所示。
这样,我们的日志功能就轻松的实现了。
三. 自动配置再分析
有的小伙伴知道,在之前SSM阶段,要想实现以上这些配置,是挺麻烦的,而在SpringBoot中则很容易,这是怎么做到的呢?其实这都归功于SpringBoot中的自动配置功能,这里 壹哥 对此做一个简单分析。
1. 自动配置
在Spring Boot中,带有一个很牛逼的自动配置(auto-configuration)功能,这里我先简单提一下,后面我再对这个原理进行深入的分析。
自动配置会尝试根据我们添加的jar依赖包,自动的配置Spring应用。比如在classpath下存在HSQLDB,并且我们没有手动配置任何数据库连接的beans,那么Spring Boot将自动配置一个内存型(in-memory)的数据库。
2. 自动配置的非侵入性
SpringBoot的自动配置(Auto-configuration)功能是非侵入性的,就是任何时候,你都可以定义自己的配置类来替换自动配置的特定部分。例如,如果你添加自己的DataSource bean,默认的内嵌数据库支持将不被考虑。
3. 自动配置的实现方式
实现自动配置有两种可选方式,分别是将@EnableAutoConfiguration或@SpringBootApplication注解添加到@Configuration类上。
注意
我们只应该添加一个自动配置的注解,@EnableAutoConfiguration或者@SpringBootApplication,通常建议将它添加到主配置类(primary @Configuration)上。
四. 关闭特定的自动配置
当然,如果你非要特立独行,就想和别人不一样,就想给自己找麻烦,那也可以把自动配置功能给关闭掉,这时我们可以使用@EnableAutoConfiguration或者@SpringBootApplication注解的exclude属性禁用它们。
我们以关闭数据源的自动配置为例,只需要排除掉数据源配置,就不会再自动配置数据源了。
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
去除数据源自动配置代码,如下图所示:
另外,如果该类(DataSourceAutoConfiguration)不在classpath中,你可以使用该注解的excludeName属性,并指定全限定名来达到相同效果。
最后,你也可以通过spring.autoconfigure.exclude属性exclude多个自动配置项(一个自动配置项集合)。
注意
通过注解级别或exclude属性都可以定义排除项!
结语
好了,今天的内容就结束啦,我们今天对SpringBoot的了解又多了一些,好开心哦。你有么有把今天的内容都掌握了呢?
今日小作业:
修改自己的端口号为8888,项目根路径为“/qf”,并开启日志功能,编写一个Web接口,接口中采集日志,然后访问该接口。