spring boot 打包成war时需要注意的几个问题:
1、spring-session包与spring-boot-autoconfigure包有冲突,具体表现为
spring-boot-autoconfigure中的类PropertyPlaceholderAutoConfiguration 创建了以下bean
@Bean
@ConditionalOnMissingBean(search = SearchStrategy.CURRENT)
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
spring-session中类似于RedisHttpSessionConfiguration中创建了
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
使用war包启动项目会抛出错误,提示已存在名称为propertySourcesPlaceholderConfigurer的bean
解决:将spring-session包移除,成功解决
2、spring boot打包成两个项目时,同时放入一个tomcat中,启动报错。错误为Unable to register MBean,则需要在配置文件中设置
spring.jmx.default-domain = project1
用来区分不同的项目
3、war包转jar步骤,
a、设置打包类型
<packaging>jar</packaging>
b、将内置tomcat移除
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
c、设置bulid标签
<build>
<finalName>projectName</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<includeSystemScope>true</includeSystemScope>
<finalName>projectName</finalName>
</configuration>
</plugin>
</plugins>
</build>