|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.boot.CommandLineRunner; | 
|---|
|  |  |  | import org.springframework.boot.SpringApplication; | 
|---|
|  |  |  | import org.springframework.boot.WebApplicationType; | 
|---|
|  |  |  | import org.springframework.boot.autoconfigure.SpringBootApplication; | 
|---|
|  |  |  | import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; | 
|---|
|  |  |  | import org.springframework.boot.builder.SpringApplicationBuilder; | 
|---|
|  |  |  | import org.springframework.context.annotation.ComponentScan; | 
|---|
|  |  |  | import org.springframework.context.annotation.FilterType; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.simRtu"}, | 
|---|
|  |  |  | excludeFilters = { | 
|---|
|  |  |  | @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = { | 
|---|
|  |  |  | com.dy.common.apiDoc.SpringApiConfig.class //一种排除类的方式 | 
|---|
|  |  |  | com.dy.common.apiDoc.SpringApiConfig.class, //一种排除类的方式 | 
|---|
|  |  |  | com.dy.pipIrrGlobal.config.DingTalk.class | 
|---|
|  |  |  | }), | 
|---|
|  |  |  | @ComponentScan.Filter(type = FilterType.REGEX, pattern = { | 
|---|
|  |  |  | //二种排除类的方式,写正则表达式,需要对目标类的完全限定名完全匹配,否则不生效 | 
|---|
|  |  |  | "com.dy.common.aop..*", | 
|---|
|  |  |  | "com.dy.common.apiDoc..*", | 
|---|
|  |  |  | "com.dy.common.multiDataSource..*", | 
|---|
|  |  |  | "com.dy.common.mybatis..*", | 
|---|
|  |  |  | "com.dy.common.singleDataSource..*", | 
|---|
|  |  |  | "com.dy.common.mybatis..*", | 
|---|
|  |  |  | "com.dy.common.webFilter..*", | 
|---|
|  |  |  | "com.dy.common.webListener..*", | 
|---|
|  |  |  | "com.dy.pipIrrGlobal.config..*", | 
|---|
|  |  |  | "com.dy.pipIrrGlobal.webCtrls..*" | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | public class PipIrrMwSimulateRtuApplication implements CommandLineRunner { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void main(String[] args) { | 
|---|
|  |  |  | SpringApplication.run(PipIrrMwSimulateRtuApplication.class, args); | 
|---|
|  |  |  | if(args != null && args.length > 0){ | 
|---|
|  |  |  | if(args.length == 1){ | 
|---|
|  |  |  | getArg0(args, 0) ; | 
|---|
|  |  |  | }else if(args.length == 2){ | 
|---|
|  |  |  | getArg0(args, 0) ; | 
|---|
|  |  |  | getArg1(args, 1) ; | 
|---|
|  |  |  | }else if(args.length == 3){ | 
|---|
|  |  |  | getArg0(args, 0) ; | 
|---|
|  |  |  | getArg1(args, 1) ; | 
|---|
|  |  |  | getArg2(args, 2) ; | 
|---|
|  |  |  | }else if(args.length == 4){ | 
|---|
|  |  |  | getArg0(args, 0) ; | 
|---|
|  |  |  | getArg1(args, 1) ; | 
|---|
|  |  |  | getArg2(args, 2) ; | 
|---|
|  |  |  | getArg3(args, 3) ; | 
|---|
|  |  |  | }else if(args.length == 5){ | 
|---|
|  |  |  | getArg0(args, 0) ; | 
|---|
|  |  |  | getArg1(args, 1) ; | 
|---|
|  |  |  | getArg2(args, 2) ; | 
|---|
|  |  |  | getArg3(args, 3) ; | 
|---|
|  |  |  | getArg4(args,4) ; | 
|---|
|  |  |  | }else if(args.length == 6){ | 
|---|
|  |  |  | getArg0(args, 0) ; | 
|---|
|  |  |  | getArg1(args, 1) ; | 
|---|
|  |  |  | getArg2(args, 2) ; | 
|---|
|  |  |  | getArg3(args, 3) ; | 
|---|
|  |  |  | getArg4(args, 4) ; | 
|---|
|  |  |  | getArg5(args, 5) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(ServerProperties.argOneDie && ServerProperties.argMultiDie){ | 
|---|
|  |  |  | ServerProperties.argOneDie = false ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | new SpringApplicationBuilder(PipIrrMwSimulateRtuApplication.class) | 
|---|
|  |  |  | .web(WebApplicationType.NONE)//不启动web服务 | 
|---|
|  |  |  | .run(args); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void getArg0(String[] args, int index){ | 
|---|
|  |  |  | if(args[index] instanceof String){ | 
|---|
|  |  |  | if(args[index] != null && !args[index].trim().equals("")){ | 
|---|
|  |  |  | String rtuAddr = (String)args[index] ;//本模拟器模拟RTU地址 | 
|---|
|  |  |  | ServerProperties.argRtuAddr = rtuAddr ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void getArg1(String[] args, int index){ | 
|---|
|  |  |  | if(args[index] != null && !args[index].trim().equals("")){ | 
|---|
|  |  |  | Integer conf = Integer.parseInt(args[index]) ;//心跳类型:1:功能码02,0:功能码81 | 
|---|
|  |  |  | ServerProperties.argHeardBeatBy02True81False = conf == 1?true:false ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void getArg2(String[] args, int index){ | 
|---|
|  |  |  | if(args[index] != null && !args[index].trim().equals("")){ | 
|---|
|  |  |  | Integer oneDie = Integer.parseInt(args[index]) ;//一包死:1是,0否 | 
|---|
|  |  |  | ServerProperties.argOneDie = oneDie == 1?true:false ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void getArg3(String[] args, int index){ | 
|---|
|  |  |  | if(args[index] != null && !args[index].trim().equals("")){ | 
|---|
|  |  |  | Integer multiDie = Integer.parseInt(args[index]) ;//多包死:1是,0否 | 
|---|
|  |  |  | ServerProperties.argMultiDie = multiDie == 1?true:false ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void getArg4(String[] args, int index){ | 
|---|
|  |  |  | if(args[index] instanceof String){ | 
|---|
|  |  |  | if(args[index] != null && !args[index].trim().equals("")){ | 
|---|
|  |  |  | String serverIp = (String)args[index] ;//服务端IP | 
|---|
|  |  |  | ServerProperties.serverIp = serverIp ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void getArg5(String[] args, int index){ | 
|---|
|  |  |  | if(args[index] != null && !args[index].trim().equals("")){ | 
|---|
|  |  |  | Integer serverPort = Integer.parseInt(args[index]) ;//服务端port | 
|---|
|  |  |  | ServerProperties.serverPort = serverPort ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * Spring容器启动完成后,执行下面方法 | 
|---|