【Spring Boot学习总结】7.Spring Boot的starter pom、xml配置、日志

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013517797/article/details/81975256

上一篇我们讲解了Spring Boot的全局配置文件application.properties的作用与配置,本篇来介绍一下Spring Boot在pom中怎样配置starter依赖,在什么场景下需要配置什么样的starter依赖,以及如何使用传统的XML配置,如何配置日志相关信息。

一、starter pom

我们在之前的样例工程中,在maven的pom文件中引入了一些starter:

<parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>1.5.4.RELEASE</version>
       <relativePath/> <!-- lookup parent from repository -->
   </parent>

<dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-test</artifactId>
       <scope>test</scope>
</dependency>

对于其中的“spring-boot-starter-web”我们前面也提到过,它帮我们引入了web开发所需要的所有jar依赖,并且给予了全部的默认配置(约定大于配置),无需我们单独引入依赖和进行外部的重新配置。所以这个starter可以理解成一个“全能包”。

那么,starter的定义其实就是:Spring Boot为我们提供了简化企业绝大多数场景的starter pom,只要使用了应用场景所需要的starter pom,相关的技术配置将会消除,就可以得到Spring Boot为我们提供的自动配置的bean。

例如我们在“spring-boot-starter-web”的位置引入“spring-boot-starter-freemarker”就会自动引入freemarker的相关依赖,和默认配置。

Spring Boot官方提供的starter pom有以下几种:

当我们程序需要什么starter的时候,我们就选择相应的进行导入,这一个动作同时为我们解决了依赖的引入和手动的配置。例如我们需要使用redis,我们引入“spring-boot-starter-redis”,就自动帮我们引入了redis的所有依赖,以及帮我们自动配置了redis的默认配置信息,我们只需要配置非常少的关键性信息即可。
当然,目前也不断的出现了许多第三方的开源组织提供不同的starter。

二、XML 配置文件

通过我们之前的Spring Boot的样例工程我们可以看出来,原本开发Web应用需要的Web.xml配置,以及以一些Spring的XML配置都不见了,我们什么都没有配置就能启动一个Restful的服务,这里是因为Spring Boot的web依赖帮我们做了这些基础的配置工作,即使我们需要修改配置,也只需要在application.properties或application.yml中做一两个简单的改变即可。那么这就是Spring Boot推崇的“零配置”化。

Spring Boot提倡零配置,即无需XML配置文件。但是在我们开发实际项目中,有些特殊情况必须要求我们进行XML文件的配置,此时Spring Boot为我们提供了“@ImportResource”注解,将该注解编写在Spring Boot工程的启动类上,就可以加载我们制定的XML配置文件,例如:

@ImportResource({"classpath:some-context.xml","classpath:another-context.xml"})

三、日志

之前我们编写Java的Web工程时,日志信息都是配置在log4j.properties中的,而Spring Boot为我们封装了spring整合的log日志框架,所以在Spring Boot,我们仅需要在核心配置文件application.properties或application.yml中配置日志信息即可。

Spring Boot支持各种日志框架,我们也可以修改它的默认日志配置。如我们使用下面的语句可以实现日志级别的配置:

#设置日志级别
logging.level.org.springframework=DEBUG

指定日志的输出方式是以“debug”的方式输出。
格式:

logging.level.*= # Log levels severity mapping. For instance `logging.level.org.springframework=DEBUG`

其它的日志配置:

logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback
logging.exception-conversion-word=%wEx # Conversion word used when logging exceptions.
logging.file= # Log file name. For instance `myapp.log`
logging.level.*= # Log levels severity mapping. For instance `logging.level.org.springframework=DEBUG`
logging.path= # Location of the log file. For instance `/var/log`
logging.pattern.console= # Appender pattern for output to the console. Only supported with the default logback setup.
logging.pattern.file= # Appender pattern for output to the file. Only supported with the default logback setup.
logging.pattern.level= # Appender pattern for log level (default %5p). Only supported with the default logback setup.
logging.register-shutdown-hook=false # Register a shutdown hook for the logging system when it is initialized.

我们在之前的样例工程中,在application.properties将日志级别设置为“debug”:

然后启动工程,发现控制台输出的信息比之前多很多,且大部分是给我们开发作为参考的debug信息:

在开发阶段我们经常要设置不同的日志级别来观察程序运行情况。

参考:
《JavaEE 开发的颠覆者 Spring Boot实战》 汪云飞编著
传智播客《Spring Boot实战与原理分析》视频课程
(https://pan.baidu.com/s/1o9M2bGI 密码:jxg8)

转载请注明出处:https://blog.csdn.net/acmman/article/details/81975256

猜你喜欢

转载自blog.csdn.net/u013517797/article/details/81975256