Skip to content

Commit b185963

Browse files
committed
ApiBoot Resource Load Redis 自动化配置
1 parent 31f2c01 commit b185963

File tree

3 files changed

+89
-2
lines changed

3 files changed

+89
-2
lines changed

api-boot-project/api-boot-autoconfigure/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,5 +147,11 @@
147147
<artifactId>api-boot-plugin-resource-load</artifactId>
148148
<optional>true</optional>
149149
</dependency>
150+
<!--Spring Boot Redis-->
151+
<dependency>
152+
<groupId>org.springframework.boot</groupId>
153+
<artifactId>spring-boot-starter-data-redis</artifactId>
154+
<optional>true</optional>
155+
</dependency>
150156
</dependencies>
151157
</project>

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/resource/ApiBootResourceLoadAutoConfiguration.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,15 @@
1919
import org.minbox.framework.api.boot.plugin.resource.load.ApiBootResourceStoreDelegate;
2020
import org.minbox.framework.api.boot.plugin.resource.load.aop.advistor.ApiBootResourceLoadAdvisor;
2121
import org.minbox.framework.api.boot.plugin.resource.load.aop.interceptor.ApiBootResourceLoadMethodInterceptor;
22+
import org.minbox.framework.api.boot.plugin.resource.load.pusher.ApiBootResourcePusher;
23+
import org.minbox.framework.api.boot.plugin.resource.load.pusher.support.ApiBootJdbcResourcePusher;
2224
import org.springframework.beans.factory.ObjectProvider;
2325
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2426
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
27+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
2528
import org.springframework.context.annotation.Bean;
2629
import org.springframework.context.annotation.Configuration;
30+
import org.springframework.context.annotation.Import;
2731

2832
/**
2933
* ApiBoot Resource Load Auto Config
@@ -38,6 +42,7 @@
3842
*/
3943
@Configuration
4044
@ConditionalOnClass(ApiBootResourceStoreDelegate.class)
45+
@Import(ApiBootResourceRedisLoadAutoConfiguration.class)
4146
public class ApiBootResourceLoadAutoConfiguration {
4247
/**
4348
* ApiBoot Resource Load Store Delegate
@@ -68,7 +73,19 @@ ApiBootResourceLoadAdvisor resourceLoadAdvisor(ApiBootResourceLoadMethodIntercep
6873
*/
6974
@Bean
7075
@ConditionalOnMissingBean
71-
ApiBootResourceLoadMethodInterceptor resourceLoadMethodInterceptor() {
72-
return new ApiBootResourceLoadMethodInterceptor(resourceStoreDelegate);
76+
ApiBootResourceLoadMethodInterceptor resourceLoadMethodInterceptor(ApiBootResourcePusher apiBootResourcePusher) {
77+
return new ApiBootResourceLoadMethodInterceptor(apiBootResourcePusher);
78+
}
79+
80+
/**
81+
* ApiBoot Jdbc Resource Pusher
82+
*
83+
* @return ApiBootJdbcResourcePusher
84+
*/
85+
@Bean
86+
@ConditionalOnMissingBean
87+
@ConditionalOnMissingClass("org.springframework.data.redis.core.RedisTemplate")
88+
ApiBootJdbcResourcePusher apiBootJdbcResourcePusher() {
89+
return new ApiBootJdbcResourcePusher(resourceStoreDelegate);
7390
}
7491
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/*
2+
* Copyright [2019] [恒宇少年 - 于起宇]
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*
16+
*/
17+
18+
package org.minbox.framework.api.boot.autoconfigure.resource;
19+
20+
import org.minbox.framework.api.boot.plugin.resource.load.ApiBootResourceStoreDelegate;
21+
import org.minbox.framework.api.boot.plugin.resource.load.pusher.support.ApiBootRedisResourcePusher;
22+
import org.springframework.beans.factory.ObjectProvider;
23+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
24+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
25+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
26+
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
27+
import org.springframework.context.annotation.Bean;
28+
import org.springframework.context.annotation.Configuration;
29+
import org.springframework.data.redis.core.RedisTemplate;
30+
31+
/**
32+
* @author:恒宇少年 - 于起宇
33+
* <p>
34+
* DateTime:2019-04-19 10:46
35+
* Blog:http://blog.yuqiyu.com
36+
* WebSite:http://www.jianshu.com/u/092df3f77bca
37+
* Gitee:https://gitee.com/hengboy
38+
* GitHub:https://github.com/hengboy
39+
*/
40+
@Configuration
41+
@ConditionalOnClass(RedisTemplate.class)
42+
@AutoConfigureAfter(RedisAutoConfiguration.class)
43+
public class ApiBootResourceRedisLoadAutoConfiguration {
44+
/**
45+
* ApiBoot Resource Load Store Delegate
46+
*/
47+
private ApiBootResourceStoreDelegate resourceStoreDelegate;
48+
49+
public ApiBootResourceRedisLoadAutoConfiguration(ObjectProvider<ApiBootResourceStoreDelegate> resourceStoreDelegateObjectProvider) {
50+
this.resourceStoreDelegate = resourceStoreDelegateObjectProvider.getIfAvailable();
51+
}
52+
53+
/**
54+
* ApiBoot Redis Resource Pusher
55+
*
56+
* @param redisTemplate Redis Template
57+
* @return ApiBootRedisResourcePusher
58+
*/
59+
@Bean
60+
@ConditionalOnMissingBean
61+
ApiBootRedisResourcePusher apiBootRedisResourcePusher(RedisTemplate redisTemplate) {
62+
return new ApiBootRedisResourcePusher(resourceStoreDelegate, redisTemplate);
63+
}
64+
}

0 commit comments

Comments
 (0)