项目运行环境配置
注:使用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的运行环境
例:
- 创建service接口
public interface LoginService {
BaseBean<UserBean> login(String account, String password);
}
- 创建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("测试环境登录成功");
}
}
- 创建prod环境实现
@Service
@Profile("prod")
public class LoginImplProd implements LoginService {
@Autowired
LoginMapper loginMapper;
@Override
public BaseBean<String> login(String account, String password) {
return BaseBean.success("正式环境登录成功");
}
}
- postman进行接口调用测试