潘志宝
2025-03-03 142bcd3bd15e9ba6176bb2093eee22040da9bd8c
提交 | 用户 | 时间
a6de49 1 package com.iailab;
H 2
087ffc 3 import com.iailab.module.model.matlab.common.utils.MatlabUtils;
c12dae 4 import com.iailab.module.model.mpk.common.MdkConstant;
D 5 import com.iailab.module.model.mpk.common.utils.DllUtils;
912a1e 6 import iail.mdk.model.common.Environment;
c12dae 7 import lombok.extern.slf4j.Slf4j;
D 8 import org.springframework.beans.factory.annotation.Value;
a6de49 9 import org.springframework.boot.CommandLineRunner;
H 10 import org.springframework.boot.SpringApplication;
11 import org.springframework.boot.autoconfigure.SpringBootApplication;
6eeac9 12 import org.springframework.context.annotation.ComponentScan;
7fd198 13 import org.springframework.scheduling.annotation.EnableAsync;
a6de49 14
c12dae 15 import javax.annotation.PostConstruct;
912a1e 16 import java.io.File;
D 17 import java.io.InputStream;
7fd198 18 import java.util.Properties;
19
20 @EnableAsync
a6de49 21 @SpringBootApplication
c12dae 22 @Slf4j
a6de49 23 public class ModelServiceApplication implements CommandLineRunner {
H 24
c12dae 25     @Value("${mpk.bak-file-path}")
D 26     private String mpkBakFilePath;
087ffc 27     @Value("${matlab.bak-file-path}")
D 28     private String matlabBakFilePath;
c12dae 29
D 30     @PostConstruct
31     void init() {
7fd198 32         //加载动态链接库
33         try {
34             Properties properties = new Properties();
912a1e 35             InputStream in = ModelServiceApplication.class.getClassLoader().getResourceAsStream("iailmdk.properties");
D 36             properties.load(in);
37             String mdkInitPath = properties.getProperty("mdk-init-path");
c12dae 38             log.info("mdkInitPath=" + mdkInitPath);
912a1e 39             File file = new File(mdkInitPath + File.separator + "IAIL.MDK.Mid.Windows.dll");
D 40             if (!file.exists()) {
41                 throw new RuntimeException("动态链接库IAIL.MDK.Mid.Windows.dll文件不存在," + file.getAbsolutePath());
42             }
43             System.load(file.getAbsolutePath());
44             Environment env = new Environment();
45             env.init();
7fd198 46         } catch (Exception e) {
47             e.printStackTrace();
c12dae 48             log.error("动态链接库IAIL.MDK.Mid.Windows.dll初始化失败");
7fd198 49         }
449017 50
c12dae 51         //加载项目已发布的dll和jar
D 52         try {
087ffc 53             log.info("************MDK-开始加载项目已发布的dll和jar**************");
c12dae 54             DllUtils.loadProjectPublish(mpkBakFilePath + File.separator + MdkConstant.PROJECT_PUBLISH);
087ffc 55             log.info("************MDK-加载项目已发布的dll和jar结束**************");
D 56             log.info("************MATLAB-开始加载项目已发布的jar**************");
57             MatlabUtils.loadProjectPublish(matlabBakFilePath + File.separator + MdkConstant.PROJECT_PUBLISH);
58             log.info("************MATLAB-加载项目已发布的jar结束**************");
c12dae 59         } catch (Exception e) {
D 60             e.printStackTrace();
61             log.error("加载项目已发布的dll和jar失败");
62         }
7fd198 63     }
137356 64
a6de49 65
H 66     public static void main(String[] args) {
67         SpringApplication.run(ModelServiceApplication.class, args);
68     }
69
70     /**
71      * 容器初始化后加载路由
72      *
73      * @param strings
74      */
75     @Override
76     public void run(String... strings) {
77     }
78 }