1
1
package sky ;
2
2
3
3
import http .HttpServer ;
4
- import io .github .fzdwx .lambada .Collections ;
5
4
import io .github .fzdwx .lambada .http .Router ;
6
5
import org .springframework .boot .autoconfigure .condition .ConditionalOnClass ;
7
6
import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
11
10
import org .springframework .context .annotation .Configuration ;
12
11
import org .springframework .context .annotation .Primary ;
13
12
import org .springframework .web .servlet .config .annotation .WebMvcConfigurationSupport ;
14
- import sky .starter .DispatchHandler ;
15
- import sky .starter .SkyHandlerMappingContainer ;
16
- import sky .starter .SkyWebServer ;
17
- import sky .starter .SkyWebServerFactory ;
13
+ import sky .starter .bean .DispatchHandler ;
14
+ import sky .starter .bean .RequestArgumentResolverContainer ;
15
+ import sky .starter .bean .RequestResultHandlerContainer ;
16
+ import sky .starter .bean .SkyHandlerMappingContainer ;
17
+ import sky .starter .bean .SkyWebServer ;
18
+ import sky .starter .bean .SkyWebServerFactory ;
18
19
import sky .starter .domain .SkyRouteDefinition ;
19
20
import sky .starter .ext .EveryRequestResultHandler ;
20
21
import sky .starter .ext .HandlerMappingContainer ;
21
22
import sky .starter .ext .PathVariableResolver ;
22
- import sky .starter .ext .RequestArgumentResolver ;
23
- import sky .starter .ext .RequestResultHandler ;
24
23
import sky .starter .ext .ResponseBodyRequestResultHandler ;
25
24
import sky .starter .props .SkyHttpServerProps ;
26
25
import sky .starter .unsupport .SkyDispatcherServletPath ;
27
26
import sky .starter .unsupport .SkyServletContext ;
28
27
import sky .starter .util .SkyBanner ;
29
28
30
29
import javax .servlet .ServletContext ;
31
- import java .util .List ;
32
30
33
31
/**
34
32
* sky http server auto configuration.
@@ -54,34 +52,25 @@ public SkyHttpServerAutoConfiguration(final SkyHttpServerProps skyHttpServerProp
54
52
*/
55
53
@ Bean
56
54
@ ConditionalOnMissingBean
57
- SkyWebServerFactory SkyWebServerFactory (
58
- WebMvcConfigurationSupport webMvcConfigurationSupport ,
59
- HttpServer httpServer ,
60
- DispatchHandler dispatchHandler ) {
55
+ SkyWebServerFactory SkyWebServerFactory (WebMvcConfigurationSupport webMvcConfigurationSupport , HttpServer httpServer ,
56
+ DispatchHandler dispatchHandler ) {
61
57
62
58
webMvcConfigurationSupport .setServletContext (servletContext ());
63
59
64
- return new SkyWebServerFactory (
65
- httpServer ,
66
- skyHttpServerProps ,
67
- dispatchHandler );
60
+ return new SkyWebServerFactory (httpServer , skyHttpServerProps , dispatchHandler );
68
61
}
69
62
70
63
@ Bean
71
- @ ConditionalOnMissingBean
72
- List <RequestResultHandler > resultHandlers () {
73
- return Collections .list (
74
- new ResponseBodyRequestResultHandler (),
75
- new EveryRequestResultHandler ()
76
- );
64
+ RequestArgumentResolverContainer requestArgumentResolverContainer () {
65
+ return new RequestArgumentResolverContainer ()
66
+ .add (new PathVariableResolver ());
77
67
}
78
68
79
69
@ Bean
80
- @ ConditionalOnMissingBean
81
- List <RequestArgumentResolver > argumentResolvers () {
82
- return Collections .list (
83
- new PathVariableResolver ()
84
- );
70
+ RequestResultHandlerContainer requestResultHandlerContainer () {
71
+ return new RequestResultHandlerContainer ()
72
+ .add (new ResponseBodyRequestResultHandler ())
73
+ .add (new EveryRequestResultHandler ());
85
74
}
86
75
87
76
/**
@@ -101,9 +90,10 @@ HandlerMappingContainer<?> container(Router<SkyRouteDefinition> router) {
101
90
*/
102
91
@ Bean
103
92
@ ConditionalOnMissingBean
104
- DispatchHandler dispatchHandler (
105
- Router <SkyRouteDefinition > router ) {
106
- return new DispatchHandler (router , resultHandlers (), argumentResolvers ());
93
+ DispatchHandler dispatchHandler (Router <SkyRouteDefinition > router , RequestResultHandlerContainer requestResultHandlerContainer ,
94
+ RequestArgumentResolverContainer requestArgumentResolverContainer ) {
95
+
96
+ return new DispatchHandler (router , requestResultHandlerContainer , requestArgumentResolverContainer );
107
97
}
108
98
109
99
/**
0 commit comments