You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
admin-client-temperature/src/main/java/com/rehome/mqttclienttemperature/AdminClientTemperatureAppli...

82 lines
3.0 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.rehome.mqttclienttemperature;
import com.rehome.mqttclienttemperature.service.TemperatureService;
import org.springframework.beans.BeansException;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import java.util.Map;
@EnableJpaAuditing
@EnableScheduling
@EnableAsync
@SpringBootApplication
public class AdminClientTemperatureApplication extends SpringBootServletInitializer implements CommandLineRunner, ApplicationContextAware {
/**
* 获取Spring框架的上下文
*/
private ApplicationContext applicationContext;
/**
后台接口自动导入
*/
@Resource
private TemperatureService temperatureService;
public static void main(String[] args) {
SpringApplication.run(AdminClientTemperatureApplication.class, args);
}
/**
* 调用 applicationContext(不能在main中使用,main是static的,不能调用)
* @param args
*/
@Override
public void run(String... args) {
//在这里可以调用applicationContext了
Map<String, Object> controllers = applicationContext.getBeansWithAnnotation(RequestMapping.class);
for (Map.Entry<String, Object> entry : controllers.entrySet()) {
System.out.println("------------------------");
System.out.println(entry.getKey());//demo1Controller
}
try {
if (temperatureService != null) {
System.out.println("------------------------");
System.out.println("TemperatureController is not empty");
MqttRSAClient client = new MqttRSAClient();
client.start(temperatureService);
}else {
System.out.println("temperatureService is empty");
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
/**
* @date 2021-05-18 09:20
* @description: 容器配置springboot打war包布署必须添加这个配置 为了打包springboot项目
* @Param: SpringApplicationBuilder
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(AdminClientTemperatureApplication.class);
}
}