SpringBoot部署

本文主要介绍

1. 多环境配置

2. SpringBoot项目打包方式(jar & war)

1. 多环境配置

 1.多环境激活

配置文件: 

spring.profiles.active=dev 

spring: 
  profiles: 
    active: dev

启动命令激活

java -jar xxx.jar --spring.profiles.active=dev; 

2. 注解@Profile / 多资源配置文件

注解@Profile

  • 1. 可使用在类或者方法上;
  • 2. @profile注解所在的类,需要为 @Component 或 @Configuration 注解的类
  • 3. @Profile 中需要指定一个字符串,约定生效的环境
@Configuration
@Profile("dev")
public class DataSourceDevConfig {
   @Bean(destroyMethod = "")
   public DataSource dataSource() throws Exception {
      .......
   }
}
@Configuration
public class DataSourceConfig {
   @Bean("dataSource")
   @Profile("dev")
   public DataSource standaloneDataSource() {
      ......
   }

   @Bean("dataSource")
   @Profile("prod")
   public DataSource jndiDataSource() throws Exception {
      ......
   }
}

多资源配置文件

Springboot的资源配置文件除了application.properties之外,还可以有对应的资源文件

application-{profile}.properties

例如:

application-dev.properties/application-dev.yml

application-test.properties/application-test.yml

2. SpringBoot项目打包方式(jar & war)

1. jar (默认方式)

  • SpringBoot中引入Maven依赖
<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>
  • 执行 maven 的打包操作 package(注意:如果当前项目依赖了其他项目,需要通过maven先将其他项目进行maven的 install操作)
  • 在项目的target包下,将生成对应jar文件

2. war

  • pom文件中,将jar改成war (默认为jar)
<packaging>war</packaging>
  • 添加servlet-api依赖l来打war包 
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <scope>provided</scope>
</dependency>
  • 排除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>
  • 增加SpringBootServletInitializer的子类,并重写其configure方法;

 将main函数所在的类继承SpringBootServletInitializer,并重写configure方法 

@SpringBootApplication
public class MySpringBootDemoApplication extends SpringBootServletInitializer {

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

   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
      // 注意这里要指向原先用main方法执行的Application启动类
      return builder.sources(MySpringBootDemoApplication.class);
   }
}
  •  SpringBoot中引入Maven依赖
<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>
  • 执行 maven 的打包操作 package(注意:如果当前项目依赖了其他项目,需要通过maven先将其他项目进行maven的 install操作)
  • 在项目的target包下,将生成对应war文件

 3. jar & war 对比

jar :

  • 简单方便
  • 内置tomcat,没有不同环境因tomcat版本不同所存在的潜在问题;
  •  不会把src/main/webapp 下的内容打到jar包里    

war: 

  • 可以部署到tomcat的 webapps 中,随Tomcat的启动而启动
  • 会把src/main/webapp 下的内容打到war包里

需要根据不同的业务场景确定是否打成jar或者war

仅仅提供rest接口, jar包方便

需要经常改动静态资源的可以打成war,静态资源直接覆盖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值