diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..359bb53 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..8b85778 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..ee2c34b --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,14 @@ + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..4bd2d0a --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..132404b --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..98717d8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +# 使用 OpenJDK 8 镜像构建 +FROM openjdk:8-jdk +# 添加作者信息 +LABEL maintainer="123879394@qq.com" + +WORKDIR /app +# 复制 jar 包 +COPY target/*.jar app.jar +# 设置 JVM 参数和启动命令 +ENTRYPOINT ["java", "-jar", "-Xms128m", "-Xmx256m", "app.jar"] \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..5b8dfb0 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,79 @@ +pipeline { + agent any + tools { + maven 'M3' // 必须在 Jenkins → Manage Jenkins → Global Tool Configuration 中配置过 + } + environment { + APP_NAME = "sczx_store" + DOCKER_IMAGE = "${APP_NAME}:latest" + CONTAINER_NAME = "${APP_NAME}-container" + } + + stages { + stage('Checkout') { + steps { + echo "📦 正在拉取代码..." + git branch: 'main', url: 'http://115.190.8.52:3000/sczx_group/sczx_store.git' + } + } + + stage('Build with Maven') { + steps { + echo "🛠️ 正在使用 Maven 构建..." + sh 'mvn clean package -s settings.xml' + } + } + + stage('Check Jar File') { + steps { + sh 'ls -la target/' // 确保 jar 文件存在 + } + } + + stage('Build Docker Image') { + steps { + echo "🐋 正在构建 Docker 镜像..." + sh """ + docker build -t \${DOCKER_IMAGE} . + """ + } + } + + stage('Stop Old Container') { + steps { + echo "🛑 正在停止旧的容器(如果存在)..." + sh ''' + if [ "$(docker ps -f 'name=sczx_store-container' --format '{{.Status}}')" ]; then + docker stop sczx_store-container + docker rm sczx_store-container + fi + ''' + } + } + + stage('Run New Container') { + steps { + echo "🟢 正在运行新的容器..." + sh """ + docker run -d \ + --name \${CONTAINER_NAME} \ + --network sczx-net \ + -p 8082:8082 \ + -e SPRING_PROFILES_ACTIVE=test \ + -e JAVA_OPTS="-Xms256m -Xmx512m -Duser.timezone=Asia/Shanghai" \ + --restart always \ + \${DOCKER_IMAGE} + """ + } + } + } + + post { + success { + echo "🎉 构建成功!" + } + failure { + echo "❌ 构建失败,请检查日志!" + } + } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..5a4aa7d --- /dev/null +++ b/pom.xml @@ -0,0 +1,292 @@ + + + 4.0.0 + + com.sczx + sczx_store + 1.0.0 + jar + + sczx_store + sczx_store service + + + 1.8 + 2.3.12.RELEASE + Hoxton.SR12 + 2.2.9.RELEASE + + + + + org.springframework.boot + spring-boot-starter-parent + 2.3.12.RELEASE + + + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${spring-cloud-alibaba.version} + pom + import + + + + + + + + + org.springframework.boot + spring-boot-starter + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + org.springframework.cloud + spring-cloud-commons + + + + + org.projectlombok + lombok + 1.18.30 + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + + + org.springframework.cloud + spring-cloud-starter-netflix-hystrix + + + + + org.springframework.retry + spring-retry + 1.3.1 + + + + org.springframework.boot + spring-boot-starter-aop + + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.3.1 + + + + + com.baomidou + mybatis-plus-boot-starter + 3.5.3.1 + + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + + + org.freemarker + freemarker + 2.3.31 + + + + + mysql + mysql-connector-java + 8.0.33 + + + + + io.jsonwebtoken + jjwt-api + 0.11.5 + + + io.jsonwebtoken + jjwt-impl + 0.11.5 + + + io.jsonwebtoken + jjwt-jackson + 0.11.5 + + + + + + + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.apache.commons + commons-pool2 + 2.11.1 + + + + + org.springdoc + springdoc-openapi-ui + 1.6.14 + + + + org.webjars + swagger-ui + 4.15.5 + + + + + javax.xml.bind + jaxb-api + 2.3.1 + + + + io.projectreactor + reactor-core + 3.2.2.RELEASE + + + + + + sczx_store + + + src/main/resources + + *.yml + + true + + + src/main/resources + + *.yml + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java.version} + ${java.version} + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.6.0 + + + unpack + process-resources + + unpack + + + + + org.webjars + swagger-ui + 4.15.5 + jar + ${project.build.outputDirectory} + META-INF/resources/** + + + + + + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + + \ No newline at end of file diff --git a/settings.xml b/settings.xml new file mode 100644 index 0000000..06004f8 --- /dev/null +++ b/settings.xml @@ -0,0 +1,12 @@ + + + + aliyun-maven + * + Aliyun Maven + https://maven.aliyun.com/repository/public + + + \ No newline at end of file diff --git a/src/main/java/com/sczx/store/Application.java b/src/main/java/com/sczx/store/Application.java new file mode 100644 index 0000000..8aef6c1 --- /dev/null +++ b/src/main/java/com/sczx/store/Application.java @@ -0,0 +1,35 @@ +package com.sczx.store; + + + +import com.sczx.store.constant.SystemConstants; +import com.sczx.store.util.ComputerInfo; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +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 +@EnableDiscoveryClient // 启用服务注册与发现 +@EnableRetry +@EnableFeignClients(basePackages = SystemConstants.FEIGN_CLIENT_BASE_PACKAGE ) +@EnableTransactionManagement +@EnableHystrix +@MapperScan("com.sczx.store.mapper") // 扫描 Mapper 接口 +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"); + } +} diff --git a/src/main/java/com/sczx/store/config/MyBatisPlusConfig.java b/src/main/java/com/sczx/store/config/MyBatisPlusConfig.java new file mode 100644 index 0000000..81ff7d0 --- /dev/null +++ b/src/main/java/com/sczx/store/config/MyBatisPlusConfig.java @@ -0,0 +1,18 @@ +package com.sczx.store.config; + +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class MyBatisPlusConfig { + + + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); + return interceptor; + } +} diff --git a/src/main/java/com/sczx/store/config/SpringDocConfig.java b/src/main/java/com/sczx/store/config/SpringDocConfig.java new file mode 100644 index 0000000..c6b742d --- /dev/null +++ b/src/main/java/com/sczx/store/config/SpringDocConfig.java @@ -0,0 +1,16 @@ +package com.sczx.store.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(); + } +} diff --git a/src/main/java/com/sczx/store/config/WebConfig.java b/src/main/java/com/sczx/store/config/WebConfig.java new file mode 100644 index 0000000..01d76c1 --- /dev/null +++ b/src/main/java/com/sczx/store/config/WebConfig.java @@ -0,0 +1,44 @@ +package com.sczx.store.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> converters) { + + converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8)); + // 添加支持 application/json;charset=UTF-8 的 Jackson 转换器 + converters.add(new MappingJackson2HttpMessageConverter() { + @Override + public List getSupportedMediaTypes() { + return Collections.singletonList(MediaType.APPLICATION_JSON_UTF8); + } + }); + + + } +} diff --git a/src/main/java/com/sczx/store/constant/SystemConstants.java b/src/main/java/com/sczx/store/constant/SystemConstants.java new file mode 100644 index 0000000..3dd08d1 --- /dev/null +++ b/src/main/java/com/sczx/store/constant/SystemConstants.java @@ -0,0 +1,23 @@ +package com.sczx.store.constant; + + +/** + * 应用模块名称

+ *

+ * 代码描述

+ *

+ * Copyright: Copyright (C) 2022 CD Finance Management Co., Ltd. All rights reserved.

+ *

+ * Company: 中和农信项目管理有限公司

+ * + * @author zhonghui + * @since 2022/4/1 3:33 PM + */ +public interface SystemConstants { + + /*** + * feign客户端所在包路径 + */ + String FEIGN_CLIENT_BASE_PACKAGE = "com.sczx.app.thirdpart.facade"; + +} diff --git a/src/main/java/com/sczx/store/util/ComputerInfo.java b/src/main/java/com/sczx/store/util/ComputerInfo.java new file mode 100644 index 0000000..93ea9a1 --- /dev/null +++ b/src/main/java/com/sczx/store/util/ComputerInfo.java @@ -0,0 +1,159 @@ +package com.sczx.store.util; + +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 getMacAddressList() throws IOException { + final ArrayList macAddressList = new ArrayList(); + 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 macList = getMacAddressList(); + for (Iterator 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()); + } +} diff --git a/src/main/java/com/sczx/store/util/JwtUtil.java b/src/main/java/com/sczx/store/util/JwtUtil.java new file mode 100644 index 0000000..fc784cd --- /dev/null +++ b/src/main/java/com/sczx/store/util/JwtUtil.java @@ -0,0 +1,63 @@ +package com.sczx.store.util; + +import io.jsonwebtoken.JwtException; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import io.jsonwebtoken.security.Keys; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.crypto.SecretKey; +import java.util.Date; + +/** + * @Author: 张黎 + * @Date: 2025/07/06/14:00 + * @Description: + */ +@Slf4j +@Component +public class JwtUtil { + + @Value("${auth.token-expiration}") + private long expiration; + private final SecretKey key; + + public JwtUtil(@Value("${auth.secret-key}") String secretKey) { + this.key = Keys.hmacShaKeyFor(secretKey.getBytes()); + +// this.key = Keys.secretKeyFor(SignatureAlgorithm.HS512); + log.info("JWT 密钥:{}", secretKey); + } + + public String generateToken(String username, String role) { + return Jwts.builder() + .setSubject(username) + .claim("role", role) + .setExpiration(new Date(System.currentTimeMillis() + expiration)) + .signWith(key, SignatureAlgorithm.HS512) + .compact(); + } + + public String extractUsername(String token) { + return Jwts.parserBuilder() + .setSigningKey(key) + .build() + .parseClaimsJws(token) + .getBody() + .getSubject(); + } + + public boolean validateToken(String token) { + try { + Jwts.parserBuilder() + .setSigningKey(key) + .build() + .parseClaimsJws(token); + return true; + } catch (JwtException ex) { + return false; + } + } +} diff --git a/src/main/java/com/sczx/store/util/RedisUtil.java b/src/main/java/com/sczx/store/util/RedisUtil.java new file mode 100644 index 0000000..75477e1 --- /dev/null +++ b/src/main/java/com/sczx/store/util/RedisUtil.java @@ -0,0 +1,33 @@ +package com.sczx.store.util; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; + +import java.util.concurrent.TimeUnit; + +/** + * @Author: 张黎 + * @Date: 2025/07/06/14:21 + * @Description: + */ +@Component +public class RedisUtil { + + + @Autowired + private StringRedisTemplate redisTemplate; + + public void set(String key, String value, long timeout, TimeUnit unit) { + redisTemplate.opsForValue().set(key, value, timeout, unit); + } + + public String get(String key) { + return redisTemplate.opsForValue().get(key); + } + + public void delete(String key) { + redisTemplate.delete(key); + } + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..d109fa1 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,86 @@ + +server: + port: 8081 + +spring: + application: + name: sczx_store # 微服务名称 + http: + encoding: + charset: UTF-8 + enabled: true + force: true + mvc: + async: + request-timeout: -1 + cloud: + nacos: + discovery: + server-addr: 115.190.8.52:8848 # Nacos 地址 + group: DEFAULT_GROUP + metadata: + version: 1.0.0 + env: dev + lifecycle: + timeout-per-shutdown-phase: 30s # 设置优雅停机时间 + 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 + redis: + host: 115.190.8.52 + port: 6379 + lettuce: + pool: + max-active: 8 + max-wait: 2000ms + max-idle: 4 + min-idle: 1 + max-life-time: 300000ms + +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.user.controller # 替换为你的 controller 包路径 + +mybatis-plus: + mapper-locations: classpath*:mapper/**/*.xml + type-aliases-package: com.sczx.user.entity # 实体类包路径 + configuration: + mapUnderscoreToCamelCase: true + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台打印 SQL(调试用) + +auth: + secret-key: his-is-a-very-long-and-secure-secret-key-for-jwt-signing-please-dont-use-short-keys + token-expiration: 86400000 # 24小时 diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml new file mode 100644 index 0000000..e594345 --- /dev/null +++ b/src/main/resources/logback.xml @@ -0,0 +1,53 @@ + + + + + + + + + ${PATTERN} + + + + + + ${LOG_FILE_PATH}/${hostname}/info.%d{yyyy-MM-dd}.log + 31 + + + + ${PATTERN} + + + + WARN + DENY + NEUTRAL + + + ERROR + DENY + NEUTRAL + + + + + + WARN + + ${LOG_FILE_PATH}/${hostname}/warn.log + true + + ${PATTERN} + + + + + + + + + \ No newline at end of file diff --git a/target/classes/application.yml b/target/classes/application.yml new file mode 100644 index 0000000..d109fa1 --- /dev/null +++ b/target/classes/application.yml @@ -0,0 +1,86 @@ + +server: + port: 8081 + +spring: + application: + name: sczx_store # 微服务名称 + http: + encoding: + charset: UTF-8 + enabled: true + force: true + mvc: + async: + request-timeout: -1 + cloud: + nacos: + discovery: + server-addr: 115.190.8.52:8848 # Nacos 地址 + group: DEFAULT_GROUP + metadata: + version: 1.0.0 + env: dev + lifecycle: + timeout-per-shutdown-phase: 30s # 设置优雅停机时间 + 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 + redis: + host: 115.190.8.52 + port: 6379 + lettuce: + pool: + max-active: 8 + max-wait: 2000ms + max-idle: 4 + min-idle: 1 + max-life-time: 300000ms + +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.user.controller # 替换为你的 controller 包路径 + +mybatis-plus: + mapper-locations: classpath*:mapper/**/*.xml + type-aliases-package: com.sczx.user.entity # 实体类包路径 + configuration: + mapUnderscoreToCamelCase: true + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台打印 SQL(调试用) + +auth: + secret-key: his-is-a-very-long-and-secure-secret-key-for-jwt-signing-please-dont-use-short-keys + token-expiration: 86400000 # 24小时 diff --git a/target/classes/logback.xml b/target/classes/logback.xml new file mode 100644 index 0000000..e594345 --- /dev/null +++ b/target/classes/logback.xml @@ -0,0 +1,53 @@ + + + + + + + + + ${PATTERN} + + + + + + ${LOG_FILE_PATH}/${hostname}/info.%d{yyyy-MM-dd}.log + 31 + + + + ${PATTERN} + + + + WARN + DENY + NEUTRAL + + + ERROR + DENY + NEUTRAL + + + + + + WARN + + ${LOG_FILE_PATH}/${hostname}/warn.log + true + + ${PATTERN} + + + + + + + + + \ No newline at end of file diff --git a/target/dependency-maven-plugin-markers/org.webjars-swagger-ui-jar-4.15.5-189193280 b/target/dependency-maven-plugin-markers/org.webjars-swagger-ui-jar-4.15.5-189193280 new file mode 100644 index 0000000..e69de29 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..02d8311 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,8 @@ +D:\workspace\sczx\sczx_store\src\main\java\com\sczx\store\util\JwtUtil.java +D:\workspace\sczx\sczx_store\src\main\java\com\sczx\store\config\WebConfig.java +D:\workspace\sczx\sczx_store\src\main\java\com\sczx\store\constant\SystemConstants.java +D:\workspace\sczx\sczx_store\src\main\java\com\sczx\store\util\ComputerInfo.java +D:\workspace\sczx\sczx_store\src\main\java\com\sczx\store\config\MyBatisPlusConfig.java +D:\workspace\sczx\sczx_store\src\main\java\com\sczx\store\config\SpringDocConfig.java +D:\workspace\sczx\sczx_store\src\main\java\com\sczx\store\util\RedisUtil.java +D:\workspace\sczx\sczx_store\src\main\java\com\sczx\store\Application.java