Skip to content

Commit 2016b73

Browse files
committed
修改db配置
1 parent 0293894 commit 2016b73

File tree

10 files changed

+163
-112
lines changed

10 files changed

+163
-112
lines changed

spring-cloud-gray-samples/spring-cloud-gray-server-sample/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
<groupId>org.springframework.cloud</groupId>
2626
<artifactId>spring-cloud-starter-eureka</artifactId>
2727
</dependency>
28+
<dependency>
29+
<groupId>org.springframework.boot</groupId>
30+
<artifactId>spring-boot-starter-data-jpa</artifactId>
31+
</dependency>
2832
<dependency>
2933
<groupId>cn.springcloud.gray</groupId>
3034
<artifactId>spring-cloud-starter-gray-server</artifactId>
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package cn.springcloud.gray.server;
1+
package cn.springcloud.gray.server.app;
22

3+
import cn.springcloud.gray.server.EnableGrayServer;
34
import org.slf4j.LoggerFactory;
45
import org.springframework.boot.autoconfigure.SpringBootApplication;
56
import org.springframework.boot.builder.SpringApplicationBuilder;

spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayInstanceServiceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
import cn.springcloud.gray.model.GrayStatus;
5-
import cn.springcloud.gray.server.GrayServerApplication;
5+
import cn.springcloud.gray.server.app.GrayServerApplication;
66
import cn.springcloud.gray.server.module.domain.GrayInstance;
77
import cn.springcloud.gray.server.module.domain.InstanceStatus;
88
import cn.springcloud.gray.server.service.GrayInstanceService;

spring-cloud-gray-server/pom.xml

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,27 @@
6060
<groupId>io.springfox</groupId>
6161
<artifactId>springfox-bean-validators</artifactId>
6262
</dependency>
63+
<!-- <dependency>-->
64+
<!-- <groupId>org.springframework.boot</groupId>-->
65+
<!-- <artifactId>spring-boot-starter-data-jpa</artifactId>-->
66+
<!-- </dependency>-->
6367
<dependency>
64-
<groupId>org.springframework.boot</groupId>
65-
<artifactId>spring-boot-starter-data-jpa</artifactId>
68+
<groupId>org.hibernate</groupId>
69+
<artifactId>hibernate-core</artifactId>
70+
<exclusions>
71+
<exclusion>
72+
<groupId>org.apache.geronimo.specs</groupId>
73+
<artifactId>geronimo-jta_1.1_spec</artifactId>
74+
</exclusion>
75+
</exclusions>
76+
</dependency>
77+
<dependency>
78+
<groupId>javax.transaction</groupId>
79+
<artifactId>javax.transaction-api</artifactId>
80+
</dependency>
81+
<dependency>
82+
<groupId>org.springframework.data</groupId>
83+
<artifactId>spring-data-jpa</artifactId>
6684
</dependency>
6785
<dependency>
6886
<groupId>mysql</groupId>
@@ -75,24 +93,4 @@
7593

7694
</dependencies>
7795

78-
<!-- <build>-->
79-
<!-- <defaultGoal>spring-boot:run</defaultGoal>-->
80-
<!-- <plugins>-->
81-
<!-- <plugin>-->
82-
<!-- <groupId>org.apache.maven.plugins</groupId>-->
83-
<!-- <artifactId>maven-compiler-plugin</artifactId>-->
84-
<!-- <version>3.6.0</version>-->
85-
<!-- <configuration>-->
86-
<!-- <annotationProcessorPaths>-->
87-
<!-- <path>-->
88-
<!-- <groupId>org.mapstruct</groupId>-->
89-
<!-- <artifactId>mapstruct-processor</artifactId>-->
90-
<!-- <version>${mapstruct.version}</version>-->
91-
<!-- </path>-->
92-
<!-- </annotationProcessorPaths>-->
93-
<!-- </configuration>-->
94-
<!-- </plugin>-->
95-
<!-- </plugins>-->
96-
<!-- </build>-->
97-
9896
</project>

spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/configuration/DBStorageConfiguration.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,36 @@
88
import cn.springcloud.gray.server.service.GrayPolicyService;
99
import cn.springcloud.gray.server.service.GrayServiceService;
1010
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
11+
import org.springframework.boot.autoconfigure.domain.EntityScan;
1112
import org.springframework.context.annotation.Bean;
13+
import org.springframework.context.annotation.ComponentScan;
1214
import org.springframework.context.annotation.Configuration;
15+
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
1316
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
1417
import org.springframework.transaction.PlatformTransactionManager;
1518
import org.springframework.transaction.annotation.EnableTransactionManagement;
1619

1720
import javax.sql.DataSource;
1821

1922
@Configuration
23+
@EnableJpaRepositories(basePackages = {"cn.springcloud.gray.server.dao.repository"})
24+
@EntityScan(basePackages = {"cn.springcloud.gray.server.dao.model"})
2025
@EnableTransactionManagement
2126
@ConditionalOnBean(GrayServerMarkerConfiguration.GrayServerMarker.class)
2227
public class DBStorageConfiguration {
2328

2429

25-
@Bean
26-
public GrayServerModule grayServerModule(
27-
GrayEventPublisher grayEventPublisher,
28-
GrayServiceService grayServiceService, GrayInstanceService grayInstanceService,
29-
GrayDecisionService grayDecisionService, GrayPolicyService grayPolicyService) {
30-
return new SimpleGrayServerModule(grayEventPublisher, grayServiceService, grayInstanceService, grayDecisionService, grayPolicyService);
30+
@ComponentScan(basePackages = {"cn.springcloud.gray.server.dao.mapper", "cn.springcloud.gray.server.service"})
31+
@Configuration
32+
public class DBGrayServrConfiguration {
33+
34+
@Bean
35+
public GrayServerModule grayServerModule(
36+
GrayEventPublisher grayEventPublisher,
37+
GrayServiceService grayServiceService, GrayInstanceService grayInstanceService,
38+
GrayDecisionService grayDecisionService, GrayPolicyService grayPolicyService) {
39+
return new SimpleGrayServerModule(grayEventPublisher, grayServiceService, grayInstanceService, grayDecisionService, grayPolicyService);
40+
}
3141
}
3242

3343
@Bean

spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/configuration/Swagger2Configuration.java

Lines changed: 10 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
11
package cn.springcloud.gray.server.configuration;
22

3+
import cn.springcloud.gray.server.configuration.apidoc.PageableParameterAlternateTypeRuleConvention;
34
import com.fasterxml.classmate.TypeResolver;
4-
import io.swagger.annotations.ApiModel;
5-
import io.swagger.annotations.ApiModelProperty;
6-
import lombok.Data;
75
import org.springframework.context.annotation.Bean;
86
import org.springframework.context.annotation.ComponentScan;
97
import org.springframework.context.annotation.Configuration;
10-
import org.springframework.core.Ordered;
11-
import org.springframework.data.domain.Pageable;
128
import org.springframework.http.ResponseEntity;
139
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
1410
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
1511
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
1612
import springfox.documentation.builders.ApiInfoBuilder;
1713
import springfox.documentation.builders.PathSelectors;
1814
import springfox.documentation.builders.ResponseMessageBuilder;
19-
import springfox.documentation.schema.AlternateTypeRule;
20-
import springfox.documentation.schema.AlternateTypeRuleConvention;
2115
import springfox.documentation.schema.ModelRef;
2216
import springfox.documentation.service.*;
2317
import springfox.documentation.spi.DocumentationType;
@@ -26,7 +20,6 @@
2620
import springfox.documentation.swagger2.annotations.EnableSwagger2;
2721

2822
import java.time.LocalDate;
29-
import java.util.ArrayList;
3023
import java.util.Arrays;
3124
import java.util.List;
3225

@@ -40,33 +33,18 @@
4033
public class Swagger2Configuration extends WebMvcConfigurerAdapter {
4134

4235

36+
// @Bean
37+
// @Order(Ordered.LOWEST_PRECEDENCE)
38+
// public PageableParameterBuilderPlugin pageableParameterBuilderPlugin(
39+
// TypeNameExtractor nameExtractor, TypeResolver resolver) {
40+
// return new PageableParameterBuilderPlugin(nameExtractor, resolver);
41+
// }
42+
4343
@Bean
44-
public AlternateTypeRuleConvention pageableConvention(final TypeResolver resolver) {
45-
return new AlternateTypeRuleConvention() {
46-
@Override
47-
public int getOrder() {
48-
return Ordered.LOWEST_PRECEDENCE;
49-
}
50-
51-
@Override
52-
public List<AlternateTypeRule> rules() {
53-
return new ArrayList(Arrays.asList(new AlternateTypeRule(resolver.resolve(Pageable.class), resolver.resolve(Page.class))));
54-
}
55-
};
44+
public PageableParameterAlternateTypeRuleConvention pageableParameterAlternateTypeRuleConvention(TypeResolver resolver) {
45+
return new PageableParameterAlternateTypeRuleConvention(resolver);
5646
}
5747

58-
@ApiModel
59-
@Data
60-
public static class Page {
61-
@ApiModelProperty("第page页,从0开始计数")
62-
private Integer page;
63-
64-
@ApiModelProperty("每页数据数量")
65-
private Integer size;
66-
67-
@ApiModelProperty("按属性排序,格式:属性(,asc|desc)")
68-
private List<String> sort;
69-
}
7048

7149
@Override
7250
public void addViewControllers(ViewControllerRegistry registry) {
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package cn.springcloud.gray.server.configuration.apidoc;
2+
3+
import com.fasterxml.classmate.TypeResolver;
4+
import io.swagger.annotations.ApiModel;
5+
import io.swagger.annotations.ApiModelProperty;
6+
import lombok.Data;
7+
import org.springframework.core.Ordered;
8+
import org.springframework.data.domain.Pageable;
9+
import springfox.documentation.schema.AlternateTypeRule;
10+
import springfox.documentation.schema.AlternateTypeRuleConvention;
11+
12+
import java.util.ArrayList;
13+
import java.util.Arrays;
14+
import java.util.List;
15+
16+
public class PageableParameterAlternateTypeRuleConvention implements AlternateTypeRuleConvention {
17+
18+
private TypeResolver resolver;
19+
20+
public PageableParameterAlternateTypeRuleConvention(TypeResolver resolver) {
21+
this.resolver = resolver;
22+
}
23+
24+
@Override
25+
public List<AlternateTypeRule> rules() {
26+
return new ArrayList(Arrays.asList(new AlternateTypeRule(resolver.resolve(Pageable.class), resolver.resolve(Page.class))));
27+
}
28+
29+
@Override
30+
public int getOrder() {
31+
return Ordered.LOWEST_PRECEDENCE;
32+
}
33+
34+
35+
@ApiModel
36+
@Data
37+
public static class Page {
38+
@ApiModelProperty(value = "第page页,从0开始计数", example = "0")
39+
private Integer page = 0;
40+
41+
@ApiModelProperty(value = "每页数据数量", example = "10")
42+
private Integer size = 10;
43+
44+
@ApiModelProperty("按属性排序,格式:属性(,asc|desc)")
45+
private List<String> sort;
46+
}
47+
}
48+

spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/configuration/apidoc/PageableParameterBuilderPlugin.java

Lines changed: 56 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,77 +4,91 @@
44
import com.fasterxml.classmate.TypeResolver;
55
import com.google.common.base.Function;
66
import org.springframework.data.domain.Pageable;
7+
import springfox.documentation.builders.ParameterBuilder;
78
import springfox.documentation.schema.ModelReference;
9+
import springfox.documentation.schema.ResolvedTypes;
810
import springfox.documentation.schema.TypeNameExtractor;
911
import springfox.documentation.service.Parameter;
1012
import springfox.documentation.service.ResolvedMethodParameter;
1113
import springfox.documentation.spi.DocumentationType;
1214
import springfox.documentation.spi.schema.contexts.ModelContext;
13-
import springfox.documentation.spi.service.ParameterBuilderPlugin;
15+
import springfox.documentation.spi.service.OperationBuilderPlugin;
16+
import springfox.documentation.spi.service.contexts.OperationContext;
1417
import springfox.documentation.spi.service.contexts.ParameterContext;
1518

1619
import java.util.List;
1720

1821
import static com.google.common.collect.Lists.newArrayList;
19-
import static springfox.documentation.schema.ResolvedTypes.modelRefFactory;
2022
import static springfox.documentation.spi.schema.contexts.ModelContext.inputParam;
2123

22-
public class PageableParameterBuilderPlugin implements ParameterBuilderPlugin {
24+
25+
public class PageableParameterBuilderPlugin implements OperationBuilderPlugin {
2326
private final TypeNameExtractor nameExtractor;
2427
private final TypeResolver resolver;
28+
private final ResolvedType pageableType;
2529

2630
public PageableParameterBuilderPlugin(TypeNameExtractor nameExtractor, TypeResolver resolver) {
2731
this.nameExtractor = nameExtractor;
2832
this.resolver = resolver;
33+
this.pageableType = resolver.resolve(Pageable.class);
34+
}
35+
36+
@Override
37+
public void apply(OperationContext context) {
38+
List<ResolvedMethodParameter> methodParameters = context.getParameters();
39+
List<Parameter> parameters = newArrayList();
40+
41+
for (ResolvedMethodParameter methodParameter : methodParameters) {
42+
ResolvedType resolvedType = methodParameter.getParameterType();
43+
44+
if (pageableType.equals(resolvedType)) {
45+
ParameterContext parameterContext = new ParameterContext(methodParameter,
46+
new ParameterBuilder(),
47+
context.getDocumentationContext(),
48+
context.getGenericsNamingStrategy(),
49+
context);
50+
Function<ResolvedType, ? extends ModelReference> factory = createModelRefFactory(parameterContext);
51+
52+
ModelReference intModel = factory.apply(resolver.resolve(Integer.TYPE));
53+
ModelReference stringModel = factory.apply(resolver.resolve(List.class, String.class));
54+
55+
parameters.add(new ParameterBuilder()
56+
.parameterType("query")
57+
.name("page")
58+
.modelRef(intModel)
59+
.description("Results page you want to retrieve (0..N)").build());
60+
parameters.add(new ParameterBuilder()
61+
.parameterType("query")
62+
.name("size")
63+
.modelRef(intModel)
64+
.description("Number of records per page").build());
65+
parameters.add(new ParameterBuilder()
66+
.parameterType("query")
67+
.name("sort")
68+
.modelRef(stringModel)
69+
.allowMultiple(true)
70+
.description("Sorting criteria in the format: property(,asc|desc). "
71+
+ "Default sort order is ascending. "
72+
+ "Multiple sort criteria are supported.")
73+
.build());
74+
context.operationBuilder().parameters(parameters);
75+
}
76+
}
2977
}
3078

3179
@Override
3280
public boolean supports(DocumentationType delimiter) {
3381
return true;
3482
}
3583

36-
private Function<ResolvedType, ? extends ModelReference>
37-
createModelRefFactory(ParameterContext context) {
38-
ModelContext modelContext = inputParam("",
84+
private Function<ResolvedType, ? extends ModelReference> createModelRefFactory(ParameterContext context) {
85+
ModelContext modelContext = inputParam(
86+
context.getGroupName(),
3987
context.resolvedMethodParameter().getParameterType(),
4088
context.getDocumentationType(),
4189
context.getAlternateTypeProvider(),
4290
context.getGenericNamingStrategy(),
4391
context.getIgnorableParameterTypes());
44-
return modelRefFactory(modelContext, nameExtractor);
92+
return ResolvedTypes.modelRefFactory(modelContext, nameExtractor);
4593
}
46-
47-
@Override
48-
public void apply(ParameterContext context) {
49-
ResolvedMethodParameter parameter = context.resolvedMethodParameter();
50-
Class<?> type = parameter.getParameterType().getErasedType();
51-
52-
System.out.println(type);
53-
if (type != null && Pageable.class.isAssignableFrom(type)) {
54-
Function<ResolvedType, ? extends ModelReference> factory =
55-
createModelRefFactory(context);
56-
57-
ModelReference intModel = factory.apply(resolver.resolve(Integer.TYPE));
58-
ModelReference stringModel = factory.apply(resolver.resolve(List.class, String.class));
59-
60-
List<Parameter> parameters = newArrayList(
61-
context.parameterBuilder()
62-
.parameterType("query").name("page").modelRef(intModel)
63-
.description("请求第几页,默认为0(0=第一页,以此类推)")
64-
.build(),
65-
context.parameterBuilder()
66-
.parameterType("query").name("size").modelRef(intModel)
67-
.description("每页的条数")
68-
.build(),
69-
context.parameterBuilder()
70-
.parameterType("query").name("sort").modelRef(stringModel).allowMultiple(true)
71-
.description("排序条件的格式为: 属性(,asc|desc). "
72-
+ "默认的为升序. "
73-
+ "支持多个属性的联合排序.")
74-
.build());
75-
76-
context.getOperationContext().operationBuilder().parameters(parameters);
77-
}
78-
}
79-
80-
}
94+
}

0 commit comments

Comments
 (0)