forked from open-job/openjob
-
Notifications
You must be signed in to change notification settings - Fork 0
/
LogAutoConfiguration.java
69 lines (60 loc) · 2.53 KB
/
LogAutoConfiguration.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package io.openjob.server.log.autoconfigure;
import io.openjob.server.log.client.Elasticsearch7Client;
import io.openjob.server.log.client.H2Client;
import io.openjob.server.log.client.MysqlClient;
import io.openjob.server.log.constant.LogStorageConstant;
import io.openjob.server.log.dao.LogDAO;
import io.openjob.server.log.dao.impl.Elasticsearch7DAOImpl;
import io.openjob.server.log.dao.impl.H2LogDAOImpl;
import io.openjob.server.log.dao.impl.MysqlLogDAOImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author stelin swoft@qq.com
* @since 1.0.0
*/
@Configuration
@EnableConfigurationProperties(LogProperties.class)
public class LogAutoConfiguration {
private final LogProperties logProperties;
@Autowired
public LogAutoConfiguration(LogProperties logProperties) {
this.logProperties = logProperties;
}
@ConditionalOnProperty(prefix = "openjob.log.storage", name = "selector", havingValue = LogStorageConstant.H2)
public class H2AutoConfiguration {
@Bean
public H2Client h2Client() {
return new H2Client(logProperties.getStorage().getH2());
}
@Bean
public LogDAO h2LogDAO(H2Client h2Client) {
return new H2LogDAOImpl(h2Client);
}
}
@ConditionalOnProperty(prefix = "openjob.log.storage", name = "selector", havingValue = LogStorageConstant.MYSQL)
public class MysqlAutoConfiguration {
@Bean
public MysqlClient mysqlClient() {
return new MysqlClient(logProperties.getStorage().getMysql());
}
@Bean
public LogDAO h2LogDAO(MysqlClient mysqlClient) {
return new MysqlLogDAOImpl(mysqlClient);
}
}
@ConditionalOnProperty(prefix = "openjob.log.storage", name = "selector", havingValue = LogStorageConstant.ELASTICSEARCH7)
public class Elasticsearch7autoconfiguration {
@Bean
public Elasticsearch7Client mysqlClient() {
return new Elasticsearch7Client(logProperties.getStorage().getElasticsearch7());
}
@Bean
public LogDAO h2LogDAO(Elasticsearch7Client elasticsearch7Client, LogProperties.Elasticsearch7Properties properties) {
return new Elasticsearch7DAOImpl(elasticsearch7Client, properties);
}
}
}