提交 8d9687f1 作者: 方治民

refactor: 重构 modules 规范命名,同时接入 loki 日志上报配置,Springboot 更新到 v3.3.3

上级 900b5e66
......@@ -31,39 +31,38 @@ dependencies {
// 💬 Mock/Test Env
runtimeOnly 'com.h2database:h2'
// 💬 Prod/Dev Env
runtimeOnly 'com.mysql:mysql-connector-j'
runtimeOnly 'org.postgresql:postgresql'
// 本地依赖
implementation fileTree(dir: project.rootDir.getPath() + '\\libs', includes: ['*jar'])
// 公共依赖
implementation project(":basic-common:core")
implementation project(":basic-common:util")
implementation project(":modules:common:core")
implementation project(":modules:common:util")
// Optional: I18n 消息, 包括参数校验、失败的请求提示等
implementation project(":basic-common:i18n")
implementation project(":modules:common:i18n")
// Optional: Redis
implementation project(":basic-common:redis")
implementation project(":modules:common:redis")
// Optional: XXL-JOB
implementation project(":basic-common:job")
implementation project(":modules:common:job")
// Optional: Doc
implementation project(":basic-common:doc")
implementation project(":modules:common:doc")
// Optional: Auth
implementation project(":basic-auth")
implementation project(":modules:auth")
// Optional: Dict - 数据字典
implementation project(":basic-dict")
implementation project(":modules:dict")
// Optional: WebSocket && STOMP 依赖 Auth + Redis 模块
implementation project(":basic-websocket")
implementation project(":modules:websocket")
// Optional: Minio S3
implementation project(":basic-common:minio")
implementation project(":modules:common:minio")
// Optional: 扩展实现在文件上传时对文件进行预处理,依赖 Minio 模块
// https://mvnrepository.com/artifact/net.bramp.ffmpeg/ffmpeg
implementation("net.bramp.ffmpeg:ffmpeg:${ffmpegWrapperVersion}") {
......@@ -83,4 +82,7 @@ dependencies {
// https://github.com/vladmihalcea/hypersistence-utils
implementation "io.hypersistence:hypersistence-utils-hibernate-63:${hibernateTypesVersion}"
// loki 日志推送
implementation "com.github.piomin:loki-logging-spring-boot-starter:${lokiLoggingVersion}"
}
......@@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* @author Jim
......@@ -15,6 +16,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
basePackageClasses = { Application.class, Jsr310JpaConverters.class },
basePackages = Application.BASE_PACKAGES
)
@EnableScheduling
@EnableJpaAuditing
@EnableJpaRepositories(basePackages = Application.BASE_PACKAGES)
@SpringBootApplication(scanBasePackages = Application.BASE_PACKAGES)
......
......@@ -23,8 +23,6 @@ import org.springframework.stereotype.Component;
*/
@Slf4j
@Component
// TODO: 测试 @Scheduled 任务调度需要开启
//@EnableScheduling
@RequiredArgsConstructor
public class TestJob {
......@@ -40,7 +38,7 @@ public class TestJob {
retryCount = 3,
retryStatus = Uptime.Status.UP
)
@Scheduled(fixedDelay = 5, timeUnit = TimeUnit.SECONDS, initialDelay = 5000)
@Scheduled(fixedDelay = 5, timeUnit = TimeUnit.SECONDS, initialDelay = 60)
public void testScheduled() {
String time = LocalDateTime.now().format(DateFormatter.DATE_TIME);
log.info("TestScheduled: {}", time);
......
......@@ -49,3 +49,9 @@ management:
# Uptime Kuma 服务地址
uptime:
domain: https://uptime.yiring.com
# Loki 日志服务
logging:
loki:
enabled: true
url: http://localhost:3100/loki/api/v1/push
......@@ -2,10 +2,10 @@ plugins {
id 'java'
id 'java-library'
// https://start.spring.io
id 'org.springframework.boot' version '3.3.1'
id 'org.springframework.boot' version '3.3.3'
id 'org.graalvm.buildtools.native' version '0.10.2'
// https://plugins.gradle.org/plugin/io.spring.dependency-management
id 'io.spring.dependency-management' version '1.1.5'
id 'io.spring.dependency-management' version '1.1.6'
// https://plugins.gradle.org/plugin/com.diffplug.spotless
id "com.diffplug.spotless" version "6.25.0"
// https://plugins.gradle.org/plugin/com.gorylenko.gradle-git-properties
......@@ -25,15 +25,15 @@ ext {
// SpringCloud
// https://start.spring.io/
springCloudVersion = '2023.0.2'
springCloudVersion = '2023.0.3'
// SpringBootAdmin
// https://central.sonatype.com/artifact/de.codecentric/spring-boot-admin-starter-server
springBootAdminVersion = '3.3.2'
springBootAdminVersion = '3.3.3'
// Sentry
// https://central.sonatype.com/artifact/io.sentry/sentry-spring-boot-starter-jakarta
sentryVersion = '7.10.0'
sentryVersion = '7.14.0'
// Dependencies
// https://central.sonatype.com/artifact/com.github.xiaoymin/knife4j-openapi3-jakarta-spring-boot-starter
......@@ -43,29 +43,31 @@ ext {
// https://central.sonatype.com/artifact/cn.dev33/sa-token-spring-boot3-starter
saTokenVersion = '1.38.0'
// https://central.sonatype.com/artifact/cn.hutool/hutool-core
hutoolVersion = '5.8.28'
hutoolVersion = '5.8.31'
// https://central.sonatype.com/artifact/com.alibaba.fastjson2/fastjson2
fastJsonVersion = '2.0.51'
fastJsonVersion = '2.0.52'
// https://central.sonatype.com/artifact/com.xuxueli/xxl-job-core
xxlJobVersion = '2.4.1'
// https://central.sonatype.com/artifact/io.minio/minio
minioVersion = '8.5.11'
minioVersion = '8.5.12'
// https://central.sonatype.com/artifact/io.hypersistence/hypersistence-utils-hibernate-63
hibernateTypesVersion = '3.7.7'
hibernateTypesVersion = '3.8.2'
// https://central.sonatype.com/artifact/org.hibernate.orm/hibernate-spatial
hibernateSpatialVersion = '6.4.9.Final'
hibernateSpatialVersion = '6.5.2.Final'
// https://central.sonatype.com/artifact/org.locationtech.jts/jts-core
jtsVersion = '1.19.0'
// https://mvnrepository.com/artifact/org.n52.jackson/jackson-datatype-jts
jacksonDatatypeJtsVersion = '1.2.10'
// https://central.sonatype.com/artifact/com.github.liaochong/myexcel
myexcelVersion = '4.5.1'
myexcelVersion = '4.5.2'
// https://central.sonatype.com/artifact/org.jetbrains/annotations
jetbrainsAnnotationsVersion = '24.1.0'
// https://central.sonatype.com/artifact/org.apache.pdfbox/pdfbox
pdfboxVersion = '3.0.2'
pdfboxVersion = '3.0.3'
// https://central.sonatype.com/artifact/org.lionsoul/ip2region
ip2regionVersion = '2.7.0'
// https://central.sonatype.com/artifact/com.github.piomin/loki-logging-spring-boot-starter
lokiLoggingVersion = '2.0.3'
// https://central.sonatype.com/artifact/net.bramp.ffmpeg/ffmpeg
// FIXED: ffmpeg 4.x
ffmpegWrapperVersion = '0.8.0'
......
......@@ -3,9 +3,9 @@ plugins {
}
dependencies {
implementation project(':basic-common:core')
implementation project(':basic-common:i18n')
implementation project(':basic-common:util')
implementation project(':modules:common:core')
implementation project(':modules:common:i18n')
implementation project(':modules:common:util')
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
......
dependencies {
implementation project(":basic-common:util")
implementation project(":basic-common:i18n")
implementation project(":basic-common:redis")
implementation project(":basic-common:doc")
implementation project(":modules:common:util")
implementation project(":modules:common:i18n")
implementation project(":modules:common:redis")
implementation project(":modules:common:doc")
implementation 'org.springframework.boot:spring-boot-starter-aop'
implementation 'org.springframework.boot:spring-boot-starter-web'
......
/* (C) 2024 YiRing, Inc. */
package com.yiring.common.config;
import java.io.Serial;
import java.io.Serializable;
import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
* @author Jim
*/
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
@Configuration("logging.loki")
@ConfigurationProperties(prefix = "logging.loki")
public class LokiConfig implements Serializable {
@Serial
private static final long serialVersionUID = 537555929100019498L;
/**
* 是否启用
*/
boolean enabled;
/**
* 推送地址
*/
String url;
}
......@@ -3,8 +3,8 @@ plugins {
}
dependencies {
implementation project(":basic-common:core")
implementation project(":basic-common:i18n")
implementation project(":modules:common:core")
implementation project(":modules:common:i18n")
implementation 'org.springframework.boot:spring-boot-starter-aop'
// xxl-job
......
......@@ -3,9 +3,9 @@ plugins {
}
dependencies {
implementation project(":basic-common:core")
implementation project(":basic-common:util")
implementation project(":basic-common:doc")
implementation project(":modules:common:core")
implementation project(":modules:common:util")
implementation project(":modules:common:doc")
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
......
dependencies {
implementation project(':basic-common:core')
implementation project(':basic-common:util')
implementation project(':basic-common:doc')
implementation project(':modules:common:core')
implementation project(':modules:common:util')
implementation project(':modules:common:doc')
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
......
dependencies {
implementation project(':basic-auth')
implementation project(':basic-common:core')
implementation project(':basic-common:redis')
implementation project(':modules:auth')
implementation project(':modules:common:core')
implementation project(':modules:common:redis')
implementation "org.springframework.boot:spring-boot-starter-websocket"
implementation "org.springframework.boot:spring-boot-starter-reactor-netty"
......
......@@ -12,16 +12,16 @@ plugins {
rootProject.name = 'basic-api-boot'
include 'app'
include 'basic-auth'
include 'basic-dict'
include 'basic-websocket'
include 'basic-common:core'
include 'basic-common:util'
include 'basic-common:doc'
include 'basic-common:minio'
include 'basic-common:redis'
include 'basic-common:i18n'
include 'basic-common:job'
include 'modules:auth'
include 'modules:dict'
include 'modules:websocket'
include 'modules:common:core'
include 'modules:common:util'
include 'modules:common:doc'
include 'modules:common:minio'
include 'modules:common:redis'
include 'modules:common:i18n'
include 'modules:common:job'
gitHooks { extension ->
extension.with {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论