柯基笔记:项目运行环境配置

  • 作者:柯基大佬
  • 日期:2021-10-20
  • 类型:Java
  • 说明:本文源于 柯基 手写摘要,如需转载请带上链接或注明出处!

项目运行环境配置

注:使用Spring自带的application.properties

目的:一次性配置开发环境和正式环境不同的参数设置

一、创建application.properties

使用 spring.profiles.active=dev设置当前运行环境,profiles是重点

二、创建application-dev.properties

把常用的 服务端口、数据库连接、数据库映射等配置放置于此

# 正式服务端口
server.port=12345

# 数据库配置
spring.datasource.name=a2j
spring.datasource.url=jdbc:mysql://localhost:3306/a2j?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=12345678
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# 数据库映射
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.a2j

# 数据库下划线字段转换驼峰
mybatis.configuration.map-underscore-to-camel-case=true

三、创建application-prod.properties

同dev一样,根据真实情况配置

# 测试服务端口
server.port=1234

# 数据库配置
spring.datasource.name=a2j
spring.datasource.url=jdbc:mysql://localhost:3306/a2j?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=12345678
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# 数据库映射
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.a2j

# 数据库下划线字段转换驼峰
mybatis.configuration.map-underscore-to-camel-case=true

四、验证配置是否生效

在service实现层创建不同环境的实现类,标记当前实现环境,实现不同的逻辑。使用 Profile 注解标记serviceImpl的运行环境

例:

  1. 创建service接口

    public interface LoginService {
    BaseBean<UserBean> login(String account, String password);
    }
  2. 创建dev环境实现

    @Service
    @Profile("dev") // 使用Profile注解标记运行环境,和application.properties里配置的 spring.profiles.active=dev 值相同
    public class LoginImplDev implements LoginService {

    @Autowired
    LoginMapper loginMapper;

    @Override
    public BaseBean<String> login(String account, String password) {
    return BaseBean.success("测试环境登录成功");
    }
    }
  3. 创建prod环境实现

    @Service
    @Profile("prod")
    public class LoginImplProd implements LoginService {

    @Autowired
    LoginMapper loginMapper;

    @Override
    public BaseBean<String> login(String account, String password) {
    return BaseBean.success("正式环境登录成功");
    }
    }
  4. postman进行接口调用测试