GVKun编程网logo

如何通过Spring Boot禁用Tomcat清单扫描?(springboot禁用trace请求)

15

本文将带您了解关于如何通过SpringBoot禁用Tomcat清单扫描?的新内容,同时我们还将为您解释springboot禁用trace请求的相关知识,另外,我们还将为您提供关于centos环境下使用

本文将带您了解关于如何通过Spring Boot禁用Tomcat清单扫描?的新内容,同时我们还将为您解释springboot禁用trace请求的相关知识,另外,我们还将为您提供关于centos环境下使用tomcat 部署SpringBoot的war包、java – 如何使用spring boot和嵌入式tomcat禁用TLSv1.0?、spring boot 2 内嵌Tomcat Stopping service [Tomcat]、spring boot 2 内嵌Tomcat 抛出异常 “Stopping service [Tomcat]”的实用信息。

本文目录一览:

如何通过Spring Boot禁用Tomcat清单扫描?(springboot禁用trace请求)

如何通过Spring Boot禁用Tomcat清单扫描?(springboot禁用trace请求)

我们有一个依赖项(JAR),它确实包含一个清单文件,该清单文件在其Class-Path条目中引用了其他JAR
。应用程序不需要这些引用的其他JAR,因此不会将它们添加为依赖项。

当应用程序启动时,tomcat会尝试解析该类路径条目,并且最终在日志中出现很多错误。喜欢:

The Class-Path manifest attribute in /Users/me/.m2/repository/org/bytedeco/javacpp-presets/openblas/0.3.3-1.4.3/openblas-0.3.3-1.4.3.jar referenced one or more files that do not exist: file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/openblas/0.3.3-1.4.3/javacpp.jarThe Class-Path manifest attribute in /Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-platform-2019.0-1.4.3.jar referenced one or more files that do not exist: file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-linux-x86.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-linux-x86_64.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-macosx-x86_64.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-windows-x86.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-windows-x86_64.jarThe Class-Path manifest attribute in /Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl/2019.0-1.4.3/mkl-2019.0-1.4.3.jar referenced one or more files that do not exist: file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl/2019.0-1.4.3/javacpp.jarThe Class-Path manifest attribute in /Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-dnn-platform/0.16-1.4.3/mkl-dnn-platform-0.16-1.4.3.jar referenced one or more files that do not exist: file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-dnn-platform/0.16-1.4.3/mkl-dnn.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-dnn-platform/0.16-1.4.3/mkl-dnn-linux-x86_64.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-dnn-platform/0.16-1.4.3/mkl-dnn-macosx-x86_64.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-dnn-platform/0.16-1.4.3/mkl-dnn-windows-x86_64.jarThe Class-Path manifest attribute in /Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-platform-2019.0-1.4.3.jar referenced one or more files that do not exist: file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-linux-x86.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-linux-x86_64.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-macosx-x86_64.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-windows-x86.jar,file:/Users/me/.m2/repository/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-windows-x86_64.jar...WARNING: Failed to scan [file:/Users/domi/.m2/repository/org/bytedeco/javacpp-presets/hdf5-platform/1.10.3-1.4.3/hdf5.jar] from classloader hierarchyjava.io.IOException: java.lang.reflect.InvocationTargetException    at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:212)    at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:65)    at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49)    at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:374)    at org.apache.tomcat.util.scan.StandardJarScanner.processURLs(StandardJarScanner.java:309)...Caused by: java.lang.reflect.InvocationTargetException    at java.base/jdk.internal.reflect.GeneratedConstructorAccessor78.newInstance(Unknown Source)    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)    at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:209)    ... 49 moreCaused by: java.nio.file.NoSuchFileException: /Users/domi/.m2/repository/org/bytedeco/javacpp-presets/hdf5-platform/1.10.3-1.4.3/hdf5.jar    at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)    at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)    at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:145)    at java.base/java.nio.file.Files.readAttributes(Files.java:1763)    at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1222)    at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:726)...

如此处所述,Tomcat已实施了一项开关以禁用清单扫描以防止出现此问题:https
:
//bz.apache.org/bugzilla/show_bug.cgi?id=59961

在常规的tomcat安装中,我们可以执行以下操作(https://tomcat.apache.org/tomcat-8.0-doc/config/jar-
scanner.html):

<Context>  ...  <JarScanner scanManifest="false"/></Context>

如何通过Spring Boot禁用Tomcat清单扫描?

答案1

小编典典

你可以喜欢底部

@Beanpublic TomcatServletWebServerFactory tomcatFactory() {   return new TomcatServletWebServerFactory() {      @Override      protected void postProcessContext(Context context) {         ((StandardJarScanner) context.getJarScanner()).setScanManifest(false);   }};}

centos环境下使用tomcat 部署SpringBoot的war包

centos环境下使用tomcat 部署SpringBoot的war包

准备war包

一、准备好已有的SpringBoot工程,在pom中添加依赖

1)设置打包格式为war

 <packaging>war</packaging>

2)排除SpringBoot内嵌的tomcat

 <!-- 以war包部署的形式需要排除内嵌的tomcat -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
		</dependency>

3)配置插件

由原来的

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

配置成

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<fork>true</fork>
					<!-- 增加jvm参数 -->
					<jvmArguments>Dfile.encoding=UTF-8</jvmArguments>
					<!-- 指定入口类 -->
					<mainClass>com.peko.filemanager.Application</mainClass>
				</configuration>
			</plugin>
		</plugins>
	</build>

二、配置启动类

由原来的

@SpringBootApplication
public class Application{
 
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

配置成

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
 
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
 
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
		return builder.sources(Application.class);
	}
}

三、用maven工具打包

先clean一下,再package

成功之后即可在target文件夹里找到打包好的war包

复制出来,然后可以改名字,这里我改成了helloworld.war

部署到centos上的tomcat

一、首先得安装tomcat

https://blog.csdn.net/piano_diano/article/details/116938060

二、将war包利用sftp工具上传到 tomcat/webapps 下

重启tomcat

systemctl restart tomcat

然后打开tomcat的管理界面

可以看到项目处于启动状态,如果是处于关闭状态,就去看tomcat/logs下的日志,报了什么错

注意:如果是以war部署在tomcat中,那么原本我们在yml文件中配置的端口号等信息是作废的

helloworld项目地址:https://gitee.com/ShyHour/hello-world

以上就是centos环境下使用tomcat 部署SpringBoot的war包的详细内容,更多关于tomcat 部署SpringBoot 的war包的资料请关注其它相关文章!

您可能感兴趣的文章:
  • SpringBoot项目jar和war打包部署方式详解
  • springboot打war包的全过程记录
  • SpringBoot项目打包war包时无法运行问题的解决方式
  • SpringBoot项目打成war和jar的区别说明
  • springboot打war包部署到外置tomcat容器的方法
  • SpringBoot项目打成War布署在Tomcat的详细步骤
  • SpringBoot项目War包部署无法注册到Nacos中的解决
  • springboot项目如何打war包流程的方法
  • SpringBoot应用程序转换成WAR文件详解

java – 如何使用spring boot和嵌入式tomcat禁用TLSv1.0?

java – 如何使用spring boot和嵌入式tomcat禁用TLSv1.0?

我想用 spring boot(版本1.3.3)取消激活TLSv1.0,但如果application.yml如下所示它不起作用:

SSL:
    协议:TLSv1.2
    key-store:/E:/key/server.jks
    密钥存储密码:serverpkcs12

如果只在IE中选择“USE TLS 1.0”,我仍然可以访问网页.
See this pic–not work.

但是,如果不使用嵌入式tomcat,并为位于server.xml中的Connector添加这些参数,它对我来说很好 – IE阻止的网页. See this pic–worked for me

sslProtocols =“TLSv1.2”sslEnabledProtocols =“TLSv1.2”

我也尝试了一些VM参数,例如-Dhttps.protocols =“TLSv1.2”,它们都是无用的.

那我该怎么办呢?

解决方法

我找到的方法是设置仅由TLSv1.2支持的密码.例如:如果您将放入application.yml

server.ssl.ciphers:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

并使用CURL

openssl s_client -connect example.com:443 -tls1

您将看到该请求将被忽略/拒绝,因为您在application.yml中设置的密码将仅验证TLSv1.2请求.

spring boot 2 内嵌Tomcat Stopping service [Tomcat]

spring boot 2 内嵌Tomcat Stopping service [Tomcat]

我在使用springboot时,当代码有问题时,发现控制台打印下面信息:

Connected to the target VM, address: ''127.0.0.1:42091'', transport: ''socket''
log4j:WARN No appenders could be found for logger (org.springframework.boot.devtools.settings.DevToolsSettings). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. . ____ _ __ _ _ /\\ / ___''_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | ''_ | ''_| | ''_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) '' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.6.RELEASE) 2018-10-25 10:10:21.425 INFO 102158 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2018-10-25 10:10:21.427 INFO 102158 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.34 2018-10-25 10:10:21.444 INFO 102158 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib] 2018-10-25 10:10:21.590 INFO 102158 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2018-10-25 10:10:24.522 INFO 102158 --- [ restartedMain] o.apache.catalina.core.StandardService : Stopping service [Tomcat] Disconnected from the target VM, address: ''127.0.0.1:42091'', transport: ''socket'' Process finished with exit code 0 

WTF?没有错误信息怎么解决问题? 各种搜索,总之就是代码有问题,自己检查把...

好吧,直接debug把

内嵌tomcat的入口类是org.apache.catalina.core.StandardService

//TODO 后面补上过程

最终找到org.springframework.context.support.AbstractApplicationContext 定位方法refresh()

if (logger.isWarnEnabled()) {
				logger.warn("Exception encountered during context initialization - " +
						"cancelling refresh attempt: " + ex);
			}

debug可以正常进入,然后就看到我们希望看到的 ex了

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''fabricApiController'': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''fabricTemplate'': Injection of resource dependencies failed; nested exception is org.springframework.boot.context.properties.ConfigurationPropertiesBindException: Error creating bean with name ''fabricConfiguration'': Could not bind properties to ''FabricConfiguration'' : prefix=blockchain, ignoreInvalidFields=false, ignoreUnknownFields=true; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under ''blockchain.channel-peers'' to java.util.List<com.smy.bc.fabric.core.configuration.FabricConfiguration$EndPoint> 

问题发现了,解决自己代码问题,然后重新启动,正常! 万事大吉?错,这才开始

上面我们简单解决了问题,但是根源没有解决!
要说解决方案把当前流行的日志体系简单说一遍
下面整理的来源网络:

常见的日志框架,注意不是具体解决方案

1 Commons-logging: apache 最早提供的日志的门面接口。避免和具体的日志方案直接耦合。类似于JDBC的api接口,具体的的JDBC driver实现由各数据库提供商实现。通过统一接口解耦,不过其内部也实现了一些简单日志方案
2 Slf4j: 全称为Simple Logging Facade for JAVA:java简单日志门面。是对不同日志框架提供的一个门面封装。可以在部署的时候不修改任何配置即可接入一种日志实现方案。和commons-loging应该有一样的初衷。

常见的日志实现:
log4j
logback
jdk-logging

详细优缺点不是本文重点,请自行搜索。

接着分析上面的问题,Commons-logging 是tomcat默认的日志系统(apache自家东西得支持),具体的日志实现,根据系统已存在日志系统选择。 简单列举以下log的实现: org.apache.commons.logging.Log | org.apache.commons.logging.impl.SimpleLog org.apache.commons.logging.impl.NoOpLog org.apache.commons.logging.impl.Log4JLogger org.apache.commons.logging.impl.SLF4JLog org.apache.commons.logging.impl.Jdk14Logger

springboot 默认使用的是logback日志实现,问题就出现在这里了!!!common-logs并没有logback的实现!

根据maven依赖,我们看到log4j和logback的包都被引入了,然后tomcat之能选择的是log4j,springboot使用的是logback。 log4j和logback只见缺少一个桥梁,正是缺少的这个桥梁,导致springboot只能输出logback!!!

中间的桥梁就是下面这个依赖

    <dependency>
        <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency> 

这个依赖可以将log4j输出到slf4j,从而从sl4j输出。

总结: 总结一下,已经搞明白是slf4j/common-logs <> log4j和logback的恩怨情仇

第一种解决方式:根据日志定位问题,然后采用加法处理,增加jcl-over-slf4j,打通slf4j和common-logs通道

第二种解决方式:解决冲突,一山不容二虎,排除掉slf4j,common-logs任意一方,spring使用slf4j,那可以排除调common-logs

从项目优化的角度看,第二种更优,可以减少不必要的依赖。

如果日志出现问题,那就是日志体系发生冲突了,可以参考这个思路,处理项目中日志异常问题

spring boot 2 内嵌Tomcat 抛出异常 “Stopping service [Tomcat]”

spring boot 2 内嵌Tomcat 抛出异常 “Stopping service [Tomcat]”

我在使用springboot时,当代码有问题时,发现控制台打印下面信息:

Connected to the target VM, address: ''127.0.0.1:42091'', transport: ''socket''
log4j:WARN No appenders could be found for logger (org.springframework.boot.devtools.settings.DevToolsSettings).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

  .   ____          _            __ _ _
 /\\ / ___''_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | ''_ | ''_| | ''_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  ''  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.6.RELEASE)

2018-10-25 10:10:21.425  INFO 102158 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2018-10-25 10:10:21.427  INFO 102158 --- [  restartedMain] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.34
2018-10-25 10:10:21.444  INFO 102158 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
2018-10-25 10:10:21.590  INFO 102158 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-10-25 10:10:24.522  INFO 102158 --- [  restartedMain] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
Disconnected from the target VM, address: ''127.0.0.1:42091'', transport: ''socket''

Process finished with exit code 0

WTF?没有错误信息怎么解决问题? 各种搜索,总之就是代码有问题,自己检查把...

好吧,直接debug把

内嵌tomcat的入口类是org.apache.catalina.core.StandardService

//TODO 后面补上过程

最终找到org.springframework.context.support.AbstractApplicationContext 定位方法refresh()

if (logger.isWarnEnabled()) {
				logger.warn("Exception encountered during context initialization - " +
						"cancelling refresh attempt: " + ex);
			}

debug可以正常进入,然后就看到我们希望看到的 ex了

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''fabricApiController'': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''fabricTemplate'': Injection of resource dependencies failed; nested exception is org.springframework.boot.context.properties.ConfigurationPropertiesBindException: Error creating bean with name ''fabricConfiguration'': Could not bind properties to ''FabricConfiguration'' : prefix=blockchain, ignoreInvalidFields=false, ignoreUnknownFields=true; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under ''blockchain.channel-peers'' to java.util.List<com.smy.bc.fabric.core.configuration.FabricConfiguration$EndPoint>

问题发现了,解决自己代码问题,然后重新启动,正常! 万事大吉?错,这才开始

上面我们简单解决了问题,但是根源没有解决!
要说解决方案把当前流行的日志体系简单说一遍
下面整理的来源网络:

常见的日志框架,注意不是具体解决方案

1 Commons-logging: apache 最早提供的日志的门面接口。避免和具体的日志方案直接耦合。类似于JDBC的api接口,具体的的JDBC driver实现由各数据库提供商实现。通过统一接口解耦,不过其内部也实现了一些简单日志方案
2 Slf4j: 全称为Simple Logging Facade for JAVA:java简单日志门面。是对不同日志框架提供的一个门面封装。可以在部署的时候不修改任何配置即可接入一种日志实现方案。和commons-loging应该有一样的初衷。

常见的日志实现:
log4j
logback
jdk-logging

详细优缺点不是本文重点,请自行搜索。

接着分析上面的问题,Commons-logging 是tomcat默认的日志系统(apache自家东西得支持),具体的日志实现,根据系统已存在日志系统选择。 简单列举以下log的实现: org.apache.commons.logging.Log | org.apache.commons.logging.impl.SimpleLog org.apache.commons.logging.impl.NoOpLog org.apache.commons.logging.impl.Log4JLogger org.apache.commons.logging.impl.SLF4JLog org.apache.commons.logging.impl.Jdk14Logger

springboot 默认使用的是logback日志实现,问题就出现在这里了!!!common-logs并没有logback的实现!

根据maven依赖,我们看到log4j和logback的包都被引入了,然后tomcat之能选择的是log4j,springboot使用的是logback。 log4j和logback只见缺少一个桥梁,正是缺少的这个桥梁,导致springboot只能输出logback!!!

中间的桥梁就是下面这个依赖

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
    </dependency>

这个依赖可以将log4j输出到slf4j,从而从sl4j输出。

总结: 总结一下,已经搞明白是slf4j/common-logs <> log4j和logback的恩怨情仇

第一种解决方式:根据日志定位问题,然后采用加法处理,增加jcl-over-slf4j,打通slf4j和common-logs通道

第二种解决方式:解决冲突,一山不容二虎,排除掉slf4j,common-logs任意一方,spring使用slf4j,那可以排除调common-logs

从项目优化的角度看,第二种更优,可以减少不必要的依赖。

如果日志出现问题,那就是日志体系发生冲突了,可以参考这个思路,处理项目中日志异常问题。

我们今天的关于如何通过Spring Boot禁用Tomcat清单扫描?springboot禁用trace请求的分享就到这里,谢谢您的阅读,如果想了解更多关于centos环境下使用tomcat 部署SpringBoot的war包、java – 如何使用spring boot和嵌入式tomcat禁用TLSv1.0?、spring boot 2 内嵌Tomcat Stopping service [Tomcat]、spring boot 2 内嵌Tomcat 抛出异常 “Stopping service [Tomcat]”的相关信息,可以在本站进行搜索。

本文标签: