需求
- 要部署到客户的服务器上,需支持多种系统,主要是windows、linux
- 支持jar包外的配置文件配置数据源信息
- 数据源支持多种数据库,主要是mysql、oracle、sqlserver
解决方案
需求一
要部署到客户的服务器上,需支持多种系统,主要是windows、linux
解决思路
- 关注到win和linux的区别,其他都好说,就是路径的分隔符需要区分一下
- linux部署简单,但win需要部署成服务,需要借助winsw,参考用winsw将jar包做成window后台服务
涉及代码
为解决分隔符问题,先找方法区分操作系统
// 获取操作系统名称
String osName = System.getProperty("os.name");
// 区分操作系统
osName.startsWith("Windows");//Windows
osName.startsWith("Linux");//Linux
osName.startsWith("Mac");//Mac
需求二
支持jar包外的配置文件配置数据源信息
解决思路
- 外置配置文件置于jar包相同目录下,配置文件名称定为datasource.properties,简单点
- 获取项目绝对路径(注意此处就用到区分分隔符)
涉及代码
private Properties getProperties() {
Properties properties = new Properties();
try {
String path = System.getProperty("user.dir");
String sp = "/";
if (osName.startsWith("Windows")) {
sp = "\\";
}
log.info("外部配置文件全路径:{}", path + sp + "datasource.properties");
FileInputStream inputStream = new FileInputStream(path + sp + "datasource.properties");
properties.load(inputStream);
inputStream.close();
} catch (IOException e) {
log.error("获取外部配置失败:{}", e.getMessage());
throw new RuntimeException(e);
}