说明:1、实现获取系统各种参数接口

pull/254/head
xjs 4 years ago
parent aa814a87ff
commit cae29f21a8

@ -18,27 +18,4 @@
</properties>
<!--<dependencies>
<dependency>
<groupId>com.xjs</groupId>
<artifactId>xjs-business</artifactId>
<version>3.3.0</version>
<exclusions>
<exclusion>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</exclusion>
<exclusion>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common-datasource</artifactId>
</exclusion>
<exclusion>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common-datascope</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>-->
</project>

@ -5,6 +5,7 @@ import com.ruoyi.common.security.annotation.EnableRyFeignClients;
import com.ruoyi.common.security.config.ApplicationConfig;
import com.ruoyi.common.security.feign.FeignAutoConfiguration;
import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
import io.seata.spring.boot.autoconfigure.SeataAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@ -18,8 +19,10 @@ import org.springframework.scheduling.annotation.EnableAsync;
* @desc
* @create 2022-01-02
*/
//排除两个关于数据源的自动配置类
@SpringBootApplication(exclude = {DynamicDataSourceAutoConfiguration.class, DataSourceAutoConfiguration.class})
//排除两个关于数据源的自动配置类、及seata配置类
@SpringBootApplication(exclude = {DynamicDataSourceAutoConfiguration.class,
DataSourceAutoConfiguration.class,
SeataAutoConfiguration.class})
// 表示通过aop框架暴露该代理对象,AopContext能够访问
@EnableAspectJAutoProxy(exposeProxy = true)
// 开启线程异步执行

@ -0,0 +1,51 @@
package com.xjs.servicemonitor.controller;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.xjs.servicemonitor.domain.ServiceMonitorInfo;
import com.xjs.servicemonitor.service.JvmMonitorService;
import com.xjs.servicemonitor.service.SystemOSService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author xiejs
* @desc
* @create 2022-01-02
*/
@RestController
@RequestMapping("servicemonitor")
public class ServiceMonitorController {
@Autowired
private JvmMonitorService jvmMonitorService;
@Autowired
private SystemOSService systemOSService;
@GetMapping
public AjaxResult getServiceMonitor() {
ServiceMonitorInfo serviceMonitorInfo = new ServiceMonitorInfo();
serviceMonitorInfo.setFreeMemory(systemOSService.getRuntimeInfo().getFreeMemory());
serviceMonitorInfo.setCurrentDir(systemOSService.getUserInfo().getCurrentDir());
serviceMonitorInfo.setHomeDir(systemOSService.getUserInfo().getHomeDir());
serviceMonitorInfo.setHostAddress(systemOSService.getHostInfo().getAddress());
serviceMonitorInfo.setHostName(systemOSService.getHostInfo().getName());
serviceMonitorInfo.setJreName(jvmMonitorService.getJavaRuntimeInfo().getName());
serviceMonitorInfo.setJreHoneDir(jvmMonitorService.getJavaRuntimeInfo().getHomeDir());
serviceMonitorInfo.setMaxMemory(systemOSService.getRuntimeInfo().getMaxMemory());
serviceMonitorInfo.setJreVersion(jvmMonitorService.getJavaRuntimeInfo().getVersion());
serviceMonitorInfo.setJvmVersion(jvmMonitorService.getJvmInfo().getVersion());
serviceMonitorInfo.setUserName(systemOSService.getUserInfo().getName());
serviceMonitorInfo.setOsArch(systemOSService.getOsInfo().getArch());
serviceMonitorInfo.setOsVersion(systemOSService.getOsInfo().getVersion());
serviceMonitorInfo.setTotalMemory(systemOSService.getRuntimeInfo().getTotalMemory());
serviceMonitorInfo.setUsableMemory(systemOSService.getRuntimeInfo().getUsableMemory());
serviceMonitorInfo.setUserLanguage(systemOSService.getUserInfo().getLanguage());
serviceMonitorInfo.setUserCountry(systemOSService.getUserInfo().getCountry());
serviceMonitorInfo.setOsName(systemOSService.getOsInfo().getName());
return AjaxResult.success(serviceMonitorInfo);
}
}

@ -0,0 +1,104 @@
package com.xjs.servicemonitor.domain;
import lombok.Data;
/**
* @author xiejs
* @desc
* @create 2022-01-02
*/
@Data
public class ServiceMonitorInfo {
/**
* jvm
*/
private String jvmVersion;
/**
* jre
*/
private String jreHoneDir;
/**
* jre
*/
private String jreVersion;
/**
* jre
*/
private String jreName;
/**
*
*/
private String osName;
/**
*
*/
private String osVersion;
/**
*
*/
private String osArch;
/**
*
*/
private String hostName;
/**
*
*/
private String hostAddress;
/**
*
*/
private String userName;
/**
*
*/
private String homeDir;
/**
* current
*/
private String currentDir;
/**
*
*/
private String userLanguage;
/**
*
*/
private String userCountry;
/**
* jvm
*/
private Long maxMemory;
/**
*
*/
private Long totalMemory;
/**
*/
private Long freeMemory;
/**
*/
private Long usableMemory;
}

@ -0,0 +1,33 @@
package com.xjs.servicemonitor.service;
import cn.hutool.system.JavaRuntimeInfo;
import cn.hutool.system.JvmInfo;
import cn.hutool.system.JvmSpecInfo;
/**
* @author xiejs
* @desc jvm
* @create 2022-01-02
*/
public interface JvmMonitorService {
/**
* jvm
* @return JvmSpecInfo
*/
JvmSpecInfo getJvmSpecInfo();
/**
* jvm
* @return JvmInfo
*/
JvmInfo getJvmInfo();
/**
* java
* @return JavaRuntimeInfo
*/
JavaRuntimeInfo getJavaRuntimeInfo();
}

@ -0,0 +1,38 @@
package com.xjs.servicemonitor.service;
import cn.hutool.system.HostInfo;
import cn.hutool.system.OsInfo;
import cn.hutool.system.RuntimeInfo;
import cn.hutool.system.UserInfo;
/**
* @author xiejs
* @desc
* @create 2022-01-02
*/
public interface SystemOSService {
/**
* os
* @return OsInfo
*/
OsInfo getOsInfo();
/**
*
* @return UserInfo
*/
UserInfo getUserInfo();
/**
*
* @return HostInfo
*/
HostInfo getHostInfo();
/**
*
* @return RuntimeInfo
*/
RuntimeInfo getRuntimeInfo();
}

@ -0,0 +1,33 @@
package com.xjs.servicemonitor.service.impl;
import cn.hutool.system.JavaRuntimeInfo;
import cn.hutool.system.JvmInfo;
import cn.hutool.system.JvmSpecInfo;
import cn.hutool.system.SystemUtil;
import com.xjs.servicemonitor.service.JvmMonitorService;
import org.springframework.stereotype.Service;
/**
* @author xiejs
* @desc
* @create 2022-01-02
*/
@Service
public class JvmMonitorServiceImpl implements JvmMonitorService {
@Override
public JvmSpecInfo getJvmSpecInfo() {
return SystemUtil.getJvmSpecInfo();
}
@Override
public JvmInfo getJvmInfo() {
return SystemUtil.getJvmInfo();
}
@Override
public JavaRuntimeInfo getJavaRuntimeInfo() {
return SystemUtil.getJavaRuntimeInfo();
}
}

@ -0,0 +1,33 @@
package com.xjs.servicemonitor.service.impl;
import cn.hutool.system.*;
import com.xjs.servicemonitor.service.SystemOSService;
import org.springframework.stereotype.Service;
/**
* @author xiejs
* @desc
* @create 2022-01-02
*/
@Service
public class SystemOSServiceImpl implements SystemOSService {
@Override
public OsInfo getOsInfo() {
return SystemUtil.getOsInfo();
}
@Override
public UserInfo getUserInfo() {
return SystemUtil.getUserInfo();
}
@Override
public HostInfo getHostInfo() {
return SystemUtil.getHostInfo();
}
@Override
public RuntimeInfo getRuntimeInfo() {
return SystemUtil.getRuntimeInfo();
}
}

@ -0,0 +1,43 @@
package com.xjs.servicemonitor.service;
import cn.hutool.system.JavaRuntimeInfo;
import cn.hutool.system.JvmInfo;
import cn.hutool.system.JvmSpecInfo;
import com.xjs.XjsMonitorApp;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author xiejs
* @desc
* @create 2022-01-02
*/
@SpringBootTest(classes = XjsMonitorApp.class)
class JvmMonitorServiceTest {
@Autowired
JvmMonitorService jvmMonitorService;
@Test
void getJvmSpecInfo() {
JvmSpecInfo jvmSpecInfo = jvmMonitorService.getJvmSpecInfo();
System.out.println(jvmSpecInfo);
}
@Test
void getJvmInfo() {
JvmInfo jvmInfo = jvmMonitorService.getJvmInfo();
System.out.println(jvmInfo);
}
@Test
void getJavaRuntimeInfo() {
JavaRuntimeInfo javaRuntimeInfo = jvmMonitorService.getJavaRuntimeInfo();
System.out.println(javaRuntimeInfo);
}
}
Loading…
Cancel
Save