springboot微框架从两个层面影响微服务开发者:
我们可以对干预springboot的配置方式进行分类:命令行参数、系统环境变量、位于文件系统中的配置、位于classpath中的配置文件、固化到代码中的配置项;
java的日志有多种多样,从java.util默认提供的日志支持,到log4j、log4j2、commons logging等,应用日志系统的配置会比较特殊,从而spring-boot-starter-logging的配置也会比较特殊。
1、需要在maven中添加如下配置中之一即可:
#默认的logging
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
#log4j
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logg4j</artifactId>
</dependency>
#log4j2
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
SpringBoot应用将自动使用logback作为应用日志框架,SpringBoot启动的时候,由org.springframework.boot.logging.Logging-Application-Listener
根据情况初始化并使用。如果要对SpringBoot提供的日志设定做调整,则可以通过以下两种方式:
#添加springMVC依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
通过在pom.xml中添加以上依赖,就得到了一个直接可执行的web应用,在当前项目下运行mvn spring-boot:run 就可以直接启动一个使用了嵌入式TOMCAT服务请求的web应用,然后在添加一个controller之后就可以实现一个简单的web服务器。简单的背后有很多约定:
对比项 | springboot | 传统打包为war的java web |
---|---|---|
静态文件位置 | src/main/resources/static | src/main/webapp |
模板文件位置 | src/main/resources/templates | src/main/webapp |
spring-boot-starter-web默认会配置一些SpringMVC的必要组件,如下列出一些:
- 必要的ViewResolver,比如ContentNegotiatingViewResolver和BeanNameViewResolver
- 将必要的Converter、GenericConverter和Formatter等bean注册到IOC容器
- 添加一系列HttpMessageConverter以便支持对web请求和相应的类型转换
- 自动配置和注册MessageCodesResolver
注意:任何时候,如果SpringMVC组件不能满足需求,可以在IOC容器中注册同类型的bean来替换,或者直接提供一个基于WebMvcConfigurerAdapter类型的bean定义来定制,甚至可用标注了@EnableWebMvc和@Configuration的配置类来接管SpringMVC的相关配置。
spring-boot-starter-web默认使用嵌入式tomcat作为web容器对外提供HTTP服务,默认使用8080端口对外监听和提供服务,对此都可以实现定制,定制有以下两方面:
01 更换容器和更换端口
更换容器:在pom.xml中编辑
# 01 去除springboot中默认的嵌入式tomcat依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
# 02 添加jetty依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
更换端口:编辑application.properties文件,添加如下行:
# server.servlet.context-path=/helloboot
# logging.file=D:/mylog/log.log
# logging.level.org.springframework.web= DEBUG
# book.author=wxh
# book.name=20
# debug=true
# spring.profiles.active=dev
server.port=8888
02 对容器内部进行定制
但是通常不要这么做,事实上spring-boot-starter-web提供的配置列表已经是最简单的方式了。