Skip to content

Commit bda2b31

Browse files
committed
🚀 支持minbox-logging使用mongo作为数据存储方式
1 parent b480a5b commit bda2b31

File tree

8 files changed

+129
-40
lines changed

8 files changed

+129
-40
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.minbox.framework.api.boot.autoconfigure.logging;
2+
3+
/**
4+
* The minbix logging storage away
5+
*
6+
* @author 恒宇少年
7+
*/
8+
public enum LoggingStorageAway {
9+
/**
10+
* storage to database
11+
*/
12+
jdbc,
13+
/**
14+
* storage to mongo
15+
*/
16+
mongo
17+
}

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/logging/admin/ApiBootLoggingAdminAutoConfiguration.java

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -19,40 +19,33 @@
1919

2020
import org.minbox.framework.api.boot.autoconfigure.logging.admin.ui.ApiBootLoggingAdminUiAutoConfiguration;
2121
import org.minbox.framework.logging.admin.LoggingAdminFactoryBean;
22-
import org.minbox.framework.logging.admin.storage.LoggingDataSourceStorage;
22+
import org.minbox.framework.logging.admin.storage.LoggingStorage;
2323
import org.minbox.framework.logging.spring.context.annotation.admin.EnableLoggingAdmin;
2424
import org.slf4j.Logger;
2525
import org.slf4j.LoggerFactory;
26-
import org.springframework.beans.factory.BeanCreationException;
27-
import org.springframework.beans.factory.InitializingBean;
2826
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
29-
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3027
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3128
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
32-
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
3329
import org.springframework.boot.context.properties.EnableConfigurationProperties;
3430
import org.springframework.context.annotation.Bean;
3531
import org.springframework.context.annotation.Configuration;
3632
import org.springframework.context.annotation.Import;
3733
import org.springframework.scheduling.annotation.EnableAsync;
3834

39-
import javax.sql.DataSource;
40-
4135
/**
4236
* ApiBoot Logging Admin Configuration
4337
*
4438
* @author 恒宇少年
4539
*/
4640
@Configuration
4741
@ConditionalOnClass(LoggingAdminFactoryBean.class)
48-
@ConditionalOnBean(DataSource.class)
4942
@EnableConfigurationProperties(ApiBootLoggingAdminProperties.class)
50-
@AutoConfigureAfter(DataSourceAutoConfiguration.class)
5143
@Import({
5244
ApiBootLoggingAdminUiAutoConfiguration.class
5345
})
5446
@EnableAsync
5547
@EnableLoggingAdmin
48+
@AutoConfigureAfter({ApiBootLoggingAdminDataBaseAutoConfiguration.class, ApiBootLoggingAdminMongoAutoConfiguration.class})
5649
public class ApiBootLoggingAdminAutoConfiguration {
5750
/**
5851
* logger instance
@@ -67,46 +60,20 @@ public ApiBootLoggingAdminAutoConfiguration(ApiBootLoggingAdminProperties apiBoo
6760
this.apiBootLoggingAdminProperties = apiBootLoggingAdminProperties;
6861
}
6962

70-
/**
71-
* {@link org.minbox.framework.logging.admin.storage.LoggingStorage} database
72-
* @param dataSource {@link DataSource}
73-
* @return {@link LoggingDataSourceStorage}
74-
*/
75-
@Bean
76-
@ConditionalOnMissingBean
77-
public LoggingDataSourceStorage loggingDataSourceStorage(DataSource dataSource) {
78-
LoggingDataSourceStorage storage = new LoggingDataSourceStorage(dataSource);
79-
return storage;
80-
}
81-
8263
/**
8364
* instantiation {@link LoggingAdminFactoryBean}
8465
*
85-
* @param loggingDataSourceStorage {@link LoggingDataSourceStorage}
66+
* @param loggingStorage The logging storage object instance
8667
* @return LoggingAdminFactoryBean
8768
*/
8869
@Bean
8970
@ConditionalOnMissingBean
90-
public LoggingAdminFactoryBean loggingAdminFactoryBean(LoggingDataSourceStorage loggingDataSourceStorage) {
71+
public LoggingAdminFactoryBean loggingAdminFactoryBean(LoggingStorage loggingStorage) {
9172
LoggingAdminFactoryBean factoryBean = new LoggingAdminFactoryBean();
92-
factoryBean.setLoggingStorage(loggingDataSourceStorage);
73+
factoryBean.setLoggingStorage(loggingStorage);
9374
factoryBean.setShowConsoleReportLog(apiBootLoggingAdminProperties.isShowConsoleReportLog());
9475
factoryBean.setFormatConsoleLogJson(apiBootLoggingAdminProperties.isFormatConsoleLogJson());
9576
logger.info("【LoggingAdminFactoryBean】init successfully.");
9677
return factoryBean;
9778
}
98-
99-
/**
100-
* Verify that the {@link DataSource} exists and perform an exception alert when it does not exist
101-
*
102-
* @see org.minbox.framework.api.boot.autoconfigure.enhance.ApiBootMyBatisEnhanceAutoConfiguration
103-
*/
104-
@Configuration
105-
@ConditionalOnMissingBean(DataSource.class)
106-
public static class DataSourceNotFoundConfiguration implements InitializingBean {
107-
@Override
108-
public void afterPropertiesSet() throws Exception {
109-
throw new BeanCreationException("No " + DataSource.class.getName() + " Found.");
110-
}
111-
}
11279
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package org.minbox.framework.api.boot.autoconfigure.logging.admin;
2+
3+
import org.minbox.framework.logging.admin.storage.LoggingDataSourceStorage;
4+
import org.minbox.framework.logging.admin.storage.LoggingStorage;
5+
import org.springframework.beans.factory.BeanCreationException;
6+
import org.springframework.beans.factory.InitializingBean;
7+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
8+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
9+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
10+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
11+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
12+
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
13+
import org.springframework.context.annotation.Bean;
14+
import org.springframework.context.annotation.Configuration;
15+
16+
import javax.sql.DataSource;
17+
18+
import static org.minbox.framework.api.boot.autoconfigure.logging.admin.ApiBootLoggingAdminProperties.API_BOOT_LOGGING_ADMIN_PREFIX;
19+
20+
/**
21+
* ApiBoot logging admin database away configuration
22+
*
23+
* @author 恒宇少年
24+
*/
25+
@Configuration
26+
@ConditionalOnClass(DataSource.class)
27+
@ConditionalOnBean(DataSource.class)
28+
@ConditionalOnProperty(prefix = API_BOOT_LOGGING_ADMIN_PREFIX, name = "storage-away", havingValue = "jdbc")
29+
@AutoConfigureAfter(DataSourceAutoConfiguration.class)
30+
public class ApiBootLoggingAdminDataBaseAutoConfiguration {
31+
32+
/**
33+
* {@link org.minbox.framework.logging.admin.storage.LoggingStorage} database
34+
*
35+
* @param dataSource {@link DataSource}
36+
* @return {@link LoggingDataSourceStorage}
37+
*/
38+
@Bean
39+
@ConditionalOnMissingBean(LoggingStorage.class)
40+
public LoggingStorage loggingDataSourceStorage(DataSource dataSource) {
41+
return new LoggingDataSourceStorage(dataSource);
42+
}
43+
44+
/**
45+
* Verify that the {@link DataSource} exists and perform an exception alert when it does not exist
46+
*
47+
* @see org.minbox.framework.api.boot.autoconfigure.enhance.ApiBootMyBatisEnhanceAutoConfiguration
48+
*/
49+
@Configuration
50+
@ConditionalOnMissingBean(DataSource.class)
51+
public static class DataSourceNotFoundConfiguration implements InitializingBean {
52+
@Override
53+
public void afterPropertiesSet() throws Exception {
54+
throw new BeanCreationException("No " + DataSource.class.getName() + " Found.");
55+
}
56+
}
57+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package org.minbox.framework.api.boot.autoconfigure.logging.admin;
2+
3+
import org.minbox.framework.logging.admin.storage.LoggingDataSourceStorage;
4+
import org.minbox.framework.logging.admin.storage.LoggingStorage;
5+
import org.minbox.framework.logging.admin.storage.mongo.LoggingMongoStorage;
6+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
7+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
8+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
9+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
10+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
11+
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
12+
import org.springframework.context.annotation.Bean;
13+
import org.springframework.context.annotation.Configuration;
14+
import org.springframework.data.mongodb.core.MongoTemplate;
15+
16+
import static org.minbox.framework.api.boot.autoconfigure.logging.admin.ApiBootLoggingAdminProperties.API_BOOT_LOGGING_ADMIN_PREFIX;
17+
18+
/**
19+
* ApiBoot logging admin mongo away configuration
20+
*
21+
* @author 恒宇少年
22+
*/
23+
@Configuration
24+
@ConditionalOnClass(MongoTemplate.class)
25+
@ConditionalOnBean(MongoTemplate.class)
26+
@ConditionalOnProperty(prefix = API_BOOT_LOGGING_ADMIN_PREFIX, name = "storage-away", havingValue = "mongo")
27+
@AutoConfigureAfter(MongoDataAutoConfiguration.class)
28+
public class ApiBootLoggingAdminMongoAutoConfiguration {
29+
/**
30+
* {@link org.minbox.framework.logging.admin.storage.LoggingStorage} database
31+
*
32+
* @param mongoTemplate {@link MongoTemplate}
33+
* @return {@link LoggingDataSourceStorage}
34+
*/
35+
@Bean
36+
@ConditionalOnMissingBean(LoggingStorage.class)
37+
public LoggingStorage loggingMongoStorage(MongoTemplate mongoTemplate) {
38+
return new LoggingMongoStorage(mongoTemplate);
39+
}
40+
}

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/logging/admin/ApiBootLoggingAdminProperties.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package org.minbox.framework.api.boot.autoconfigure.logging.admin;
1919

2020
import lombok.Data;
21+
import org.minbox.framework.api.boot.autoconfigure.logging.LoggingStorageAway;
2122
import org.springframework.boot.context.properties.ConfigurationProperties;
2223
import org.springframework.context.annotation.Configuration;
2324

@@ -44,4 +45,8 @@ public class ApiBootLoggingAdminProperties {
4445
* Format console log JSON
4546
*/
4647
private boolean formatConsoleLogJson = false;
48+
/**
49+
* The logging storage away
50+
*/
51+
private LoggingStorageAway storageAway = LoggingStorageAway.jdbc;
4752
}

api-boot-project/api-boot-autoconfigure/src/main/resources/META-INF/spring.factories

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
1818
org.minbox.framework.api.boot.autoconfigure.ratelimiter.ApiBootRateLimiterAutoConfiguration,\
1919
org.minbox.framework.api.boot.autoconfigure.mail.ApiBootMailAutoConfiguration,\
2020
org.minbox.framework.api.boot.autoconfigure.logging.ApiBootLoggingAutoConfiguration,\
21+
org.minbox.framework.api.boot.autoconfigure.logging.admin.ApiBootLoggingAdminDataBaseAutoConfiguration,\
22+
org.minbox.framework.api.boot.autoconfigure.logging.admin.ApiBootLoggingAdminMongoAutoConfiguration,\
2123
org.minbox.framework.api.boot.autoconfigure.logging.admin.ApiBootLoggingAdminAutoConfiguration,\
2224
org.minbox.framework.api.boot.autoconfigure.logging.admin.ApiBootLoggingAdminSecurityAutoConfiguration,\
2325
org.minbox.framework.api.boot.autoconfigure.sequence.ApiBootSequenceAutoConfiguration,\

api-boot-samples/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<!--Samples所使用的ApiBoot版本-->
1919
<api-boot.version>${project.version}</api-boot.version>
2020
<!--Samples所使用的SpringBoot版本-->
21-
<spring-boot.version>2.4.5</spring-boot.version>
21+
<spring-boot.version>2.6.6</spring-boot.version>
2222
</properties>
2323
<artifactId>api-boot-samples</artifactId>
2424
<packaging>pom</packaging>

pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.minbox.framework</groupId>
77
<artifactId>minbox-parent</artifactId>
8-
<version>1.0.8</version>
8+
<version>1.0.9-SNAPSHOT</version>
99
<relativePath/>
1010
</parent>
1111
<packaging>pom</packaging>
@@ -72,6 +72,7 @@
7272
<plugin>
7373
<groupId>org.apache.maven.plugins</groupId>
7474
<artifactId>maven-compiler-plugin</artifactId>
75+
<version>3.10.1</version>
7576
<configuration>
7677
<source>${jdk.version}</source>
7778
<target>${jdk.version}</target>

0 commit comments

Comments
 (0)