初始化版本
This commit is contained in:
35
.gitignore
vendored
Normal file
35
.gitignore
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
HELP.md
|
||||||
|
target/
|
||||||
|
!.mvn/wrapper/maven-wrapper.jar
|
||||||
|
!**/src/main/**/target/
|
||||||
|
!**/src/test/**/target/
|
||||||
|
|
||||||
|
### STS ###
|
||||||
|
.apt_generated
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.springBeans
|
||||||
|
.sts4-cache
|
||||||
|
|
||||||
|
### IntelliJ IDEA ###
|
||||||
|
.idea
|
||||||
|
*.iws
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
|
||||||
|
### NetBeans ###
|
||||||
|
/nbproject/private/
|
||||||
|
/nbbuild/
|
||||||
|
/dist/
|
||||||
|
/nbdist/
|
||||||
|
/.nb-gradle/
|
||||||
|
build/
|
||||||
|
!**/src/main/**/build/
|
||||||
|
!**/src/test/**/build/
|
||||||
|
|
||||||
|
### VS Code ###
|
||||||
|
.vscode/
|
||||||
|
logs/
|
||||||
|
src/main/resources/rebel.xml
|
||||||
231
pom.xml
Normal file
231
pom.xml
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>com.sczx</groupId>
|
||||||
|
<artifactId>sczx-app</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<name>sczx-app</name>
|
||||||
|
<description>sczx-app service</description>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<java.version>1.8</java.version>
|
||||||
|
<spring-boot.version>2.1.18.RELEASE</spring-boot.version>
|
||||||
|
<spring-cloud.version>Greenwich.SR6</spring-cloud.version>
|
||||||
|
<spring-cloud-alibaba.version>2.2.9.RELEASE</spring-cloud-alibaba.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<!-- Parent -->
|
||||||
|
<parent>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
|
<version>2.1.18.RELEASE</version>
|
||||||
|
<relativePath/>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<!-- Dependency Management -->
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<!-- Spring Cloud Greenwich.SR6 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-dependencies</artifactId>
|
||||||
|
<version>${spring-cloud.version}</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Spring Cloud Alibaba 2.2.9.RELEASE -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
|
||||||
|
<version>${spring-cloud-alibaba.version}</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
|
||||||
|
<!-- Dependencies -->
|
||||||
|
<dependencies>
|
||||||
|
<!-- Spring Boot Starter -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Spring Web Starter -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Actuator for health checks -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Nacos Service Discovery -->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>com.alibaba.cloud</groupId>-->
|
||||||
|
<!-- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-commons</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Lombok (Optional) -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.24</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- OpenFeign -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Hystrix 熔断器 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Spring Retry -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.retry</groupId>
|
||||||
|
<artifactId>spring-retry</artifactId>
|
||||||
|
<version>1.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-aop</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- MyBatis Starter -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mybatis.spring.boot</groupId>
|
||||||
|
<artifactId>mybatis-spring-boot-starter</artifactId>
|
||||||
|
<version>2.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- MySQL 驱动 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<version>8.0.33</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Springdoc OpenAPI UI -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springdoc</groupId>
|
||||||
|
<artifactId>springdoc-openapi-ui</artifactId>
|
||||||
|
<version>1.6.14</version> <!-- 支持 Java 8 的最新版本 -->
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.webjars</groupId>
|
||||||
|
<artifactId>swagger-ui</artifactId>
|
||||||
|
<version>4.15.5</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- JAXB API (Java 8 兼容) -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
<version>2.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<!-- Build Configuration -->
|
||||||
|
<build>
|
||||||
|
<finalName>sczx-app</finalName>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<includes>
|
||||||
|
<include>*.yml</include>
|
||||||
|
</includes>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<excludes>
|
||||||
|
<exclude>*.yml</exclude>
|
||||||
|
</excludes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
<plugins>
|
||||||
|
<!-- Compiler Plugin -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>${java.version}</source>
|
||||||
|
<target>${java.version}</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- Spring Boot Maven Plugin -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>repackage</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-dependency-plugin</artifactId>
|
||||||
|
<version>3.6.0</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>unpack</id>
|
||||||
|
<phase>process-resources</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>unpack</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<artifactItems>
|
||||||
|
<artifactItem>
|
||||||
|
<groupId>org.webjars</groupId>
|
||||||
|
<artifactId>swagger-ui</artifactId>
|
||||||
|
<version>4.15.5</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
|
||||||
|
<includes>META-INF/resources/**</includes>
|
||||||
|
</artifactItem>
|
||||||
|
</artifactItems>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-source-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-deploy-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<skip>true</skip>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
||||||
29
src/main/java/com/sczx/app/Application.java
Normal file
29
src/main/java/com/sczx/app/Application.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.sczx.app;
|
||||||
|
|
||||||
|
import com.sczx.app.common.constant.SystemConstants;
|
||||||
|
import com.sczx.app.utils.ComputerInfo;
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
|
||||||
|
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||||
|
import org.springframework.context.ConfigurableApplicationContext;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
import org.springframework.retry.annotation.EnableRetry;
|
||||||
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
@EnableRetry
|
||||||
|
@EnableFeignClients(basePackages = SystemConstants.FEIGN_CLIENT_BASE_PACKAGE )
|
||||||
|
@EnableTransactionManagement
|
||||||
|
@EnableHystrix
|
||||||
|
public class Application {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws IOException {
|
||||||
|
ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
|
||||||
|
Environment environment = context.getBean(Environment.class);
|
||||||
|
System.out.println("启动成功,后端服务API地址:http://" + ComputerInfo.getIpAddr() + ":"
|
||||||
|
+ environment.getProperty("server.port") + "/doc.html");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
package com.sczx.app.common.constant;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用模块名称<p>
|
||||||
|
* <p>
|
||||||
|
* 代码描述<p>
|
||||||
|
* <p>
|
||||||
|
* Copyright: Copyright (C) 2022 CD Finance Management Co., Ltd. All rights reserved. <p>
|
||||||
|
* <p>
|
||||||
|
* Company: 中和农信项目管理有限公司<p>
|
||||||
|
*
|
||||||
|
* @author zhonghui
|
||||||
|
* @since 2022/4/1 3:33 PM
|
||||||
|
*/
|
||||||
|
public interface SystemConstants {
|
||||||
|
|
||||||
|
/***
|
||||||
|
* feign客户端所在包路径
|
||||||
|
*/
|
||||||
|
String FEIGN_CLIENT_BASE_PACKAGE = "com.sczx.app.thirdpart.facade";
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/sczx/app/config/SpringDocConfig.java
Normal file
16
src/main/java/com/sczx/app/config/SpringDocConfig.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.sczx.app.config;
|
||||||
|
|
||||||
|
|
||||||
|
import org.springdoc.core.GroupedOpenApi;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
|
||||||
|
//@Configuration
|
||||||
|
public class SpringDocConfig {
|
||||||
|
@Bean
|
||||||
|
public GroupedOpenApi publicApi() {
|
||||||
|
return GroupedOpenApi.builder()
|
||||||
|
.group("sczx-service")
|
||||||
|
.packagesToScan("com.sczx.app.controller")
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
44
src/main/java/com/sczx/app/config/WebConfig.java
Normal file
44
src/main/java/com/sczx/app/config/WebConfig.java
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
package com.sczx.app.config;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.http.converter.HttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||||
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
||||||
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableWebMvc
|
||||||
|
public class WebConfig implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||||
|
registry.addResourceHandler("/swagger-ui/**")
|
||||||
|
.addResourceLocations("classpath:/META-INF/resources/webjars/swagger-ui/4.15.5/");
|
||||||
|
registry.addResourceHandler("/swagger-ui.html")
|
||||||
|
.addResourceLocations("classpath:/META-INF/resources/swagger-ui.html");
|
||||||
|
registry.addResourceHandler("/v3/api-docs/**")
|
||||||
|
.addResourceLocations("classpath:/META-INF/resources/swagger-ui/");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||||
|
|
||||||
|
converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8));
|
||||||
|
// 添加支持 application/json;charset=UTF-8 的 Jackson 转换器
|
||||||
|
converters.add(new MappingJackson2HttpMessageConverter() {
|
||||||
|
@Override
|
||||||
|
public List<MediaType> getSupportedMediaTypes() {
|
||||||
|
return Collections.singletonList(MediaType.APPLICATION_JSON_UTF8);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
16
src/main/java/com/sczx/app/controller/DemoController.java
Normal file
16
src/main/java/com/sczx/app/controller/DemoController.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.sczx.app.controller;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@Tag(name = "示例接口", description = "用于演示 Springdoc 的接口")
|
||||||
|
public class DemoController {
|
||||||
|
@GetMapping("/test")
|
||||||
|
@Operation(summary = "测试接口", description = "返回一个测试字符串")
|
||||||
|
public String test() {
|
||||||
|
return "OK";
|
||||||
|
}
|
||||||
|
}
|
||||||
159
src/main/java/com/sczx/app/utils/ComputerInfo.java
Normal file
159
src/main/java/com/sczx/app/utils/ComputerInfo.java
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
package com.sczx.app.utils;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <取网卡物理地址--
|
||||||
|
* 1.在Windows,Linux系统下均可用;
|
||||||
|
* 2.通过ipconifg,ifconfig获得计算机信息;
|
||||||
|
* 3.再用模式匹配方式查找MAC地址,与操作系统的语言无关>
|
||||||
|
*
|
||||||
|
* //* Description: <取计算机名--从环境变量中取>
|
||||||
|
* abstract 限制继承/创建实例
|
||||||
|
*/
|
||||||
|
public abstract class ComputerInfo {
|
||||||
|
private static String macAddressStr = null;
|
||||||
|
private static String computerName = System.getenv().get("COMPUTERNAME");
|
||||||
|
|
||||||
|
private static final String[] windowsCommand = { "ipconfig", "/all" };
|
||||||
|
private static final String[] linuxCommand = { "/sbin/ifconfig", "-a" };
|
||||||
|
private static final String[] macCommand = { "ifconfig", "-a" };
|
||||||
|
private static final Pattern macPattern = Pattern.compile(".*((:?[0-9a-f]{2}[-:]){5}[0-9a-f]{2}).*",
|
||||||
|
Pattern.CASE_INSENSITIVE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取多个网卡地址
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
private final static List<String> getMacAddressList() throws IOException {
|
||||||
|
final ArrayList<String> macAddressList = new ArrayList<String>();
|
||||||
|
final String os = System.getProperty("os.name");
|
||||||
|
final String command[];
|
||||||
|
|
||||||
|
if (os.startsWith("Windows")) {
|
||||||
|
command = windowsCommand;
|
||||||
|
} else if (os.startsWith("Linux")) {
|
||||||
|
command = linuxCommand;
|
||||||
|
} else if (os.startsWith("Mac")){
|
||||||
|
command = macCommand;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new IOException("Unknow operating system:" + os);
|
||||||
|
}
|
||||||
|
// 执行命令
|
||||||
|
final Process process = Runtime.getRuntime().exec(command);
|
||||||
|
|
||||||
|
BufferedReader bufReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
||||||
|
for (String line = null; (line = bufReader.readLine()) != null;) {
|
||||||
|
Matcher matcher = macPattern.matcher(line);
|
||||||
|
if (matcher.matches()) {
|
||||||
|
macAddressList.add(matcher.group(1));
|
||||||
|
// macAddressList.add(matcher.group(1).replaceAll("[-:]",
|
||||||
|
// ""));//去掉MAC中的“-”
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
process.destroy();
|
||||||
|
bufReader.close();
|
||||||
|
return macAddressList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取一个网卡地址(多个网卡时从中获取一个)
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getMacAddress() {
|
||||||
|
if (macAddressStr == null || macAddressStr.equals("")) {
|
||||||
|
StringBuffer sb = new StringBuffer(); // 存放多个网卡地址用,目前只取一个非0000000000E0隧道的值
|
||||||
|
try {
|
||||||
|
List<String> macList = getMacAddressList();
|
||||||
|
for (Iterator<String> iter = macList.iterator(); iter.hasNext();) {
|
||||||
|
String amac = iter.next();
|
||||||
|
if (!"0000000000E0".equals(amac)) {
|
||||||
|
sb.append(amac);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
macAddressStr = sb.toString();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return macAddressStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取电脑名
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getComputerName() {
|
||||||
|
if (computerName == null || computerName.equals("")) {
|
||||||
|
computerName = System.getenv().get("COMPUTERNAME");
|
||||||
|
}
|
||||||
|
return computerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取客户端IP地址
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getIpAddrAndName() throws IOException {
|
||||||
|
return InetAddress.getLocalHost().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取客户端IP地址
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getIpAddr() throws IOException {
|
||||||
|
return InetAddress.getLocalHost().getHostAddress().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取电脑唯一标识
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getComputerID() {
|
||||||
|
String id = getMacAddress();
|
||||||
|
if (id == null || id.equals("")) {
|
||||||
|
try {
|
||||||
|
id = getIpAddrAndName();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return computerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 限制创建实例
|
||||||
|
*/
|
||||||
|
private ComputerInfo() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) throws IOException {
|
||||||
|
System.out.println(ComputerInfo.getMacAddress());
|
||||||
|
System.out.println(ComputerInfo.getComputerName());
|
||||||
|
System.out.println(ComputerInfo.getIpAddr());
|
||||||
|
System.out.println(ComputerInfo.getIpAddrAndName());
|
||||||
|
}
|
||||||
|
}
|
||||||
71
src/main/resources/application.yml
Normal file
71
src/main/resources/application.yml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
|
||||||
|
server:
|
||||||
|
port: 8088
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: sczx-service # 微服务名称
|
||||||
|
http:
|
||||||
|
encoding:
|
||||||
|
charset: UTF-8
|
||||||
|
enabled: true
|
||||||
|
force: true
|
||||||
|
mvc:
|
||||||
|
async:
|
||||||
|
request-timeout: -1
|
||||||
|
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
discovery:
|
||||||
|
server-addr: localhost:8848 # Nacos 地址
|
||||||
|
|
||||||
|
datasource:
|
||||||
|
url: jdbc:mysql://115.190.8.52:3306/sczx?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
|
||||||
|
username: sczx_user
|
||||||
|
password: Sczx123@
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
hikari:
|
||||||
|
maximum-pool-size: 10
|
||||||
|
auto-commit: true
|
||||||
|
|
||||||
|
jpa:
|
||||||
|
hibernate:
|
||||||
|
ddl-auto: update
|
||||||
|
show-sql: true
|
||||||
|
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
|
||||||
|
|
||||||
|
lifecycle:
|
||||||
|
timeout-per-shutdown-phase: 30s # 设置优雅停机时间
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
web:
|
||||||
|
exposure:
|
||||||
|
include: "*" # 暴露所有监控端点
|
||||||
|
endpoint:
|
||||||
|
health:
|
||||||
|
show-details: always
|
||||||
|
|
||||||
|
feign:
|
||||||
|
client:
|
||||||
|
config:
|
||||||
|
default:
|
||||||
|
connectTimeout: 5000
|
||||||
|
readTimeout: 5000
|
||||||
|
hystrix:
|
||||||
|
enabled: true # 启用 Feign 的 Hystrix 支持
|
||||||
|
|
||||||
|
hystrix:
|
||||||
|
command:
|
||||||
|
default:
|
||||||
|
execution:
|
||||||
|
isolation:
|
||||||
|
thread:
|
||||||
|
timeoutInMilliseconds: 10000 # 默认熔断超时时间
|
||||||
|
|
||||||
|
springdoc:
|
||||||
|
swagger-ui:
|
||||||
|
url: /v3/api-docs
|
||||||
|
path: /doc.html
|
||||||
|
packages-to-scan: com.sczx.app.controller # 替换为你的 controller 包路径
|
||||||
|
debug: true
|
||||||
53
src/main/resources/logback.xml
Normal file
53
src/main/resources/logback.xml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<configuration>
|
||||||
|
<!--%d表示日期,%X表示输出所有,:null表示为空时输出null,%level表示日志级别 %thread表示线程名字 %c表示类名 %L表示行号 %n表示换行符-->
|
||||||
|
<property name="PATTERN"
|
||||||
|
value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%X{EagleEye-TraceID}%X{EagleEye-TraceID-Copy}] %level [%thread] %c[%L] %X{requestId} %msg%n"/>
|
||||||
|
<property name="LOG_FILE_PATH" value="./logs"/>
|
||||||
|
<appender name="STDOUT"
|
||||||
|
class="ch.qos.logback.core.ConsoleAppender">
|
||||||
|
<encoder>
|
||||||
|
<pattern>${PATTERN}</pattern>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<appender name="INFO_FILE_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>${LOG_FILE_PATH}/${hostname}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||||
|
<MaxHistory>31</MaxHistory>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
|
||||||
|
<layout class="ch.qos.logback.classic.PatternLayout">
|
||||||
|
<pattern>${PATTERN}</pattern>
|
||||||
|
</layout>
|
||||||
|
</encoder>
|
||||||
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||||
|
<level>WARN</level>
|
||||||
|
<onMatch>DENY</onMatch>
|
||||||
|
<onMismatch>NEUTRAL</onMismatch>
|
||||||
|
</filter>
|
||||||
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||||
|
<level>ERROR</level>
|
||||||
|
<onMatch>DENY</onMatch>
|
||||||
|
<onMismatch>NEUTRAL</onMismatch>
|
||||||
|
</filter>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<appender name="WARN_FILE_APPENDER" class="ch.qos.logback.core.FileAppender">
|
||||||
|
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||||
|
<level>WARN</level>
|
||||||
|
</filter>
|
||||||
|
<file>${LOG_FILE_PATH}/${hostname}/warn.log</file>
|
||||||
|
<append>true</append>
|
||||||
|
<encoder>
|
||||||
|
<pattern>${PATTERN}</pattern>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<root level="info">
|
||||||
|
<appender-ref ref="INFO_FILE_APPENDER"/>
|
||||||
|
<appender-ref ref="WARN_FILE_APPENDER"/>
|
||||||
|
<appender-ref ref="STDOUT"/>
|
||||||
|
</root>
|
||||||
|
</configuration>
|
||||||
Reference in New Issue
Block a user