feat(app): 迁移 manage-app 模块主代码(任务 T3.3)
- 删除 novalon manage-app 现有 Java 源代码 - 从 gym-manage 复制 11 个 Java 文件并替换包名 cn.novalon.gym.manage → cn.novalon.manage - 新增 DataSourceConfig.java 和 TransactionManagerConfig.java - 编译验证通过
This commit is contained in:
+35
-4
@@ -1,16 +1,24 @@
|
|||||||
package cn.novalon.manage.app;
|
package cn.novalon.manage.app;
|
||||||
|
|
||||||
|
import cn.novalon.manage.sys.core.service.IOperationLogService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.boot.CommandLineRunner;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration;
|
import org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration;
|
||||||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.ComponentScan;
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories;
|
import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories;
|
||||||
|
import org.springframework.web.server.WebFilter;
|
||||||
|
|
||||||
@SpringBootApplication(scanBasePackages = "cn.novalon.manage", exclude = {ReactiveUserDetailsServiceAutoConfiguration.class})
|
import java.util.List;
|
||||||
@EnableR2dbcRepositories(basePackages = {"cn.novalon.manage.db.dao", "cn.novalon.manage.sys.audit.repository"})
|
|
||||||
|
@SpringBootApplication(scanBasePackages = "cn.novalon.manage", exclude = {
|
||||||
|
ReactiveUserDetailsServiceAutoConfiguration.class })
|
||||||
|
@EnableR2dbcRepositories(basePackages = { "cn.novalon.manage.db.dao",
|
||||||
|
"cn.novalon.manage.sys.audit.repository" })
|
||||||
public class ManageApplication {
|
public class ManageApplication {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(ManageApplication.class);
|
private static final Logger logger = LoggerFactory.getLogger(ManageApplication.class);
|
||||||
@@ -18,9 +26,32 @@ public class ManageApplication {
|
|||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
logger.info("应用程序启动中...");
|
logger.info("应用程序启动中...");
|
||||||
logger.info("包扫描路径: cn.novalon.manage");
|
logger.info("包扫描路径: cn.novalon.manage");
|
||||||
|
|
||||||
// 使用简单的启动方式,避免自动配置问题
|
|
||||||
SpringApplication.run(ManageApplication.class, args);
|
SpringApplication.run(ManageApplication.class, args);
|
||||||
logger.info("应用程序启动完成");
|
logger.info("应用程序启动完成");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public CommandLineRunner checkWebFilters(List<WebFilter> webFilters) {
|
||||||
|
return args -> {
|
||||||
|
logger.info("=== 检查已注册的 WebFilter ===");
|
||||||
|
logger.info("WebFilter 总数: {}", webFilters.size());
|
||||||
|
for (WebFilter filter : webFilters) {
|
||||||
|
logger.info(" - {} (Order: {})",
|
||||||
|
filter.getClass().getName(),
|
||||||
|
filter.getClass().getAnnotation(org.springframework.core.annotation.Order.class) != null
|
||||||
|
? filter.getClass().getAnnotation(org.springframework.core.annotation.Order.class)
|
||||||
|
.value()
|
||||||
|
: "无");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public CommandLineRunner checkOperationLogService(IOperationLogService service) {
|
||||||
|
return args -> {
|
||||||
|
logger.info("=== 检查 IOperationLogService ===");
|
||||||
|
logger.info("IOperationLogService 实现: {}", service.getClass().getName());
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
package cn.novalon.manage.app.config;
|
||||||
|
|
||||||
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class DataSourceConfig {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Primary
|
||||||
|
@ConfigurationProperties("spring.datasource")
|
||||||
|
public DataSourceProperties dataSourceProperties() {
|
||||||
|
return new DataSourceProperties();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Primary
|
||||||
|
public DataSource dataSource(DataSourceProperties properties) {
|
||||||
|
return properties.initializeDataSourceBuilder()
|
||||||
|
.type(HikariDataSource.class)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
+8
@@ -3,6 +3,8 @@ package cn.novalon.manage.app.config;
|
|||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
|
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||||
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||||
@@ -39,6 +41,12 @@ public class JacksonConfig {
|
|||||||
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
|
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
|
||||||
|
|
||||||
objectMapper.registerModule(javaTimeModule);
|
objectMapper.registerModule(javaTimeModule);
|
||||||
|
|
||||||
|
SimpleModule longModule = new SimpleModule();
|
||||||
|
longModule.addSerializer(Long.class, ToStringSerializer.instance);
|
||||||
|
longModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
|
||||||
|
objectMapper.registerModule(longModule);
|
||||||
|
|
||||||
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||||
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
|
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
|
||||||
|
|
||||||
|
|||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
package cn.novalon.manage.app.config;
|
||||||
|
|
||||||
|
import io.r2dbc.spi.ConnectionFactory;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
import org.springframework.transaction.ReactiveTransactionManager;
|
||||||
|
import org.springframework.transaction.reactive.TransactionalOperator;
|
||||||
|
import org.springframework.r2dbc.connection.R2dbcTransactionManager;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class TransactionManagerConfig {
|
||||||
|
|
||||||
|
@Bean(name = "connectionFactoryTransactionManager")
|
||||||
|
@Primary
|
||||||
|
public ReactiveTransactionManager reactiveTransactionManager(ConnectionFactory connectionFactory) {
|
||||||
|
return new R2dbcTransactionManager(connectionFactory);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Primary
|
||||||
|
public TransactionalOperator transactionalOperator(ReactiveTransactionManager reactiveTransactionManager) {
|
||||||
|
return TransactionalOperator.create(reactiveTransactionManager);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user