springboot去掉内置tomcat使用外部tomcat容器

springboot去掉内置tomcat使用外部tomcat容器


最近springboot项目想去掉内置的tomcat,进而使用外置的tomcat容器进行开发和部署,这边我分享下。

(1)启动入口部分Application

public class XXXXXXApplication
        extends SpringBootServletInitializer
{
//原来的入口注掉
//	public static void reg(String[] args) {
//		ConfigurableApplicationContext context = SpringApplication.run(SepaBeanApplication.class, args);
//		SpringUtil.setApplicationContext(context);
//	}
	@Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的Application启动类
        return builder.sources(SepaBeanApplication.class);
   }
    @Override
    protected WebApplicationContext run(SpringApplication application) {
        SpringUtil.setApplicationContext(application.run(new String[0]));
       return (WebApplicationContext)SpringUtil.getApplicationContext();
    }
}

(2)parent的pom文件打包部分

<build>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.properties</include>
					<include>**/*.xml</include>
				</includes>
				<filtering>false</filtering>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>*.*</include>
					<include>**/*.*</include>
				</includes>
				<excludes>
					<exclude>*.*.bak</exclude>
					<exclude>**/*.bak</exclude>
				</excludes>
				<filtering>false</filtering>
			</resource>
		</resources>


		<plugins>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>

(3)需要打包的web的pom文件部分
改成打war包即可

    <artifactId>SepaBean-Web</artifactId>
    <packaging>war</packaging>

(4)如果使用了log4j作为日志输出的
也需要修改log4j的properties文件

log4j.rootLogger=debug, stdout, logFile, errorFile
#控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
log4j.appender.CONSOLE.Encoding=UTF-8


#日志文件输出  超过1M产生新log文件
log4j.appender.logFile=org.apache.log4j.RollingFileAppender
#log4j.appender.logFile.File=${catalina.base}/logs/log.log
log4j.appender.logFile.File=../logs/log.log
log4j.appender.logFile.MaxFileSize=20000KB
log4j.appender.logFile.MaxBackupIndex=10
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n
log4j.appender.ROLLING_FILE.Encoding=UTF-8

#报错输出
log4j.appender.errorFile=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.errorFile.File=${catalina.base}/logs/error.log
log4j.appender.errorFile.File=../logs/error.log
log4j.appender.errorFile.Append = true
log4j.appender.errorFile.Threshold = ERROR
log4j.appender.errorFile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorFile.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n
log4j.appender.DAILY_ROLLING_FILE.Encoding=UTF-8
  • 11
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Springboot使用内置tomcat作为默认的web容器,无需额外安装Tomcat,只需在服务部署时直接启动jar包即可。这是因为在spring-boot-starter-web中,默认导入的是tomcat,所以启动时使用web容器就是tomcat。如果你想配置使用其他的web容器,比如Undertow,可以按照以下步骤进行操作: 1. 修改pom.xml文件,排除默认引入的spring-boot-starter-tomcat依赖,并添加Undertow依赖: ```xml <dependencies> <!-- 导入web场景启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 排除tomcat starter --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 引入undertow --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency> </dependencies> ``` 通过这样的配置,你就可以使用Undertow作为springboot内置web容器了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBoot如何使用内嵌Tomcat](https://blog.csdn.net/u011523825/article/details/126114624)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SpringBoot内置Tomcat配置和切换](https://blog.csdn.net/weixin_39158966/article/details/129745702)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值