Mais conteúdo relacionado Semelhante a Spring framework 3.2 > 4.0 — themes and trends (20) Spring framework 3.2 > 4.0 — themes and trends438. 예제
final ListDeferredResultString reqeusts = new CopyOnWriteArrayList();
!
@RequestMapping(method= RequestMethod.GET)
public @ResponseBody DeferredResultString pullMessage() {
final DeferredResultString deferredResult = new DeferredResult(null, );
reqeusts.add(deferredResult);
!
deferredResult.onCompletion(new Runnable() {
public void run() { reqeusts.remove(deferredResult); }
});
!
return deferredResult;
}
!
@RequestMapping(method=RequestMethod.POST)
public @ResponseBody void postMessage(@RequestParam String message) {
for(DeferredResultString deferredResult : reqeusts) {
deferredResult.setResult(message);
}
}
Spring
450. 예제
final ListDeferredResultString reqeusts = new CopyOnWriteArrayList();
!
@RequestMapping(method= RequestMethod.GET)
public @ResponseBody DeferredResultString pullMessage() {
final DeferredResultString deferredResult = new DeferredResult(null, );
reqeusts.add(deferredResult);
!
deferredResult.onCompletion(new Runnable() {
public void run() { reqeusts.remove(deferredResult); }
});
!
return deferredResult;
}
!
@RequestMapping(method=RequestMethod.POST)
public @ResponseBody void postMessage(@RequestParam String message) {
for(DeferredResultString deferredResult : reqeusts) {
deferredResult.setResult(message);
}
}
Spring
462. 예제
final ListDeferredResultString reqeusts = new CopyOnWriteArrayList();
!
@RequestMapping(method= RequestMethod.GET)
public @ResponseBody DeferredResultString pullMessage() {
final DeferredResultString deferredResult = new DeferredResult(null, );
reqeusts.add(deferredResult);
!
deferredResult.onCompletion(new Runnable() {
public void run() { reqeusts.remove(deferredResult); }
});
!
return deferredResult;
}
!
@RequestMapping(method=RequestMethod.POST)
public @ResponseBody void postMessage(@RequestParam String message) {
for(DeferredResultString deferredResult : reqeusts) {
deferredResult.setResult(message);
}
}
Spring
474. 예제
final ListDeferredResultString reqeusts = new CopyOnWriteArrayList();
!
@RequestMapping(method= RequestMethod.GET)
public @ResponseBody DeferredResultString pullMessage() {
final DeferredResultString deferredResult = new DeferredResult(null, );
reqeusts.add(deferredResult);
!
deferredResult.onCompletion(new Runnable() {
public void run() { reqeusts.remove(deferredResult); }
});
!
return deferredResult;
}
!
@RequestMapping(method=RequestMethod.POST)
public @ResponseBody void postMessage(@RequestParam String message) {
for(DeferredResultString deferredResult : reqeusts) {
deferredResult.setResult(message);
}
}
Spring
486. 예제
final ListDeferredResultString reqeusts = new CopyOnWriteArrayList();
!
@RequestMapping(method= RequestMethod.GET)
public @ResponseBody DeferredResultString pullMessage() {
final DeferredResultString deferredResult = new DeferredResult(null, );
reqeusts.add(deferredResult);
!
deferredResult.onCompletion(new Runnable() {
public void run() { reqeusts.remove(deferredResult); }
});
!
return deferredResult;
}
!
@RequestMapping(method=RequestMethod.POST)
public @ResponseBody void postMessage(@RequestParam String message) {
for(DeferredResultString deferredResult : reqeusts) {
deferredResult.setResult(message);
}
}
Spring
498. 예제
final ListDeferredResultString reqeusts = new CopyOnWriteArrayList();
!
@RequestMapping(method= RequestMethod.GET)
public @ResponseBody DeferredResultString pullMessage() {
final DeferredResultString deferredResult = new DeferredResult(null, );
reqeusts.add(deferredResult);
!
deferredResult.onCompletion(new Runnable() {
public void run() { reqeusts.remove(deferredResult); }
});
!
return deferredResult;
}
!
@RequestMapping(method=RequestMethod.POST)
public @ResponseBody void postMessage(@RequestParam String message) {
for(DeferredResultString deferredResult : reqeusts) {
deferredResult.setResult(message);
}
}
Spring
570. framework
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(
new HelloController()
).build();
!
mockMvc.perform(
get(/hello).param(name, arawn)
)
.andExpect(status().isOk())
.andExpect(content().string(안녕, arawn!));
581. framework
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(
new HelloController()
).build();
!
mockMvc.perform(
get(/hello).param(name, arawn)
)
.andExpect(status().isOk())
.andExpect(content().string(안녕, arawn!));
592. framework
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(
new HelloController()
).build();
!
mockMvc.perform(
get(/hello).param(name, arawn)
)
.andExpect(status().isOk())
.andExpect(content().string(안녕, arawn!));
603. framework
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(
new HelloController()
).build();
!
mockMvc.perform(
get(/hello).param(name, arawn)
)
.andExpect(status().isOk())
.andExpect(content().string(안녕, arawn!));
616. framework
HelloController helloController = new HelloController();
!
MockMvc mockMvc = MockMvcBuilders
.standaloneSetup(helloController)
.addFilters(...)
.addInterceptors(...)
.setMessageConverters(...)
.setViewResolvers(...)
.build();
// Test Code
mockMvc.perform(get(/hello).param(name, arawn))
.andExpect(status().isOk())
.andExpect(content().string(Hello, arawn!));
629. framework
HelloController helloController = new HelloController();
!
MockMvc mockMvc = MockMvcBuilders
.standaloneSetup(helloController)
.addFilters(...)
.addInterceptors(...)
.setMessageConverters(...)
.setViewResolvers(...)
.build();
// Test Code
mockMvc.perform(get(/hello).param(name, arawn))
.andExpect(status().isOk())
.andExpect(content().string(Hello, arawn!));
642. framework
HelloController helloController = new HelloController();
!
MockMvc mockMvc = MockMvcBuilders
.standaloneSetup(helloController)
.addFilters(...)
.addInterceptors(...)
.setMessageConverters(...)
.setViewResolvers(...)
.build();
// Test Code
mockMvc.perform(get(/hello).param(name, arawn))
.andExpect(status().isOk())
.andExpect(content().string(Hello, arawn!));
655. framework
HelloController helloController = new HelloController();
!
MockMvc mockMvc = MockMvcBuilders
.standaloneSetup(helloController)
.addFilters(...)
.addInterceptors(...)
.setMessageConverters(...)
.setViewResolvers(...)
.build();
// Test Code
mockMvc.perform(get(/hello).param(name, arawn))
.andExpect(status().isOk())
.andExpect(content().string(Hello, arawn!));
668. framework
HelloController helloController = new HelloController();
!
MockMvc mockMvc = MockMvcBuilders
.standaloneSetup(helloController)
.addFilters(...)
.addInterceptors(...)
.setMessageConverters(...)
.setViewResolvers(...)
.build();
// Test Code
mockMvc.perform(get(/hello).param(name, arawn))
.andExpect(status().isOk())
.andExpect(content().string(Hello, arawn!));
748. framework
RestTemplate restTemplate = new RestTemplate();
!
MockRestServiceServer mockServer =
MockRestServiceServer.createServer(restTemplate);
!
mockServer.expect(requestTo(/hello))
.andRespond(withSuccess(Hello KSUG!, MediaType.TEXT_PLAIN));
!
String result = restTemplate.getForObject(/hello, String.class);
!
mockServer.verify();
assertThat(result, is(Hello KSUG!));
759. framework
RestTemplate restTemplate = new RestTemplate();
!
MockRestServiceServer mockServer =
MockRestServiceServer.createServer(restTemplate);
!
mockServer.expect(requestTo(/hello))
.andRespond(withSuccess(Hello KSUG!, MediaType.TEXT_PLAIN));
!
String result = restTemplate.getForObject(/hello, String.class);
!
mockServer.verify();
assertThat(result, is(Hello KSUG!));
770. framework
RestTemplate restTemplate = new RestTemplate();
!
MockRestServiceServer mockServer =
MockRestServiceServer.createServer(restTemplate);
!
mockServer.expect(requestTo(/hello))
.andRespond(withSuccess(Hello KSUG!, MediaType.TEXT_PLAIN));
!
String result = restTemplate.getForObject(/hello, String.class);
!
mockServer.verify();
assertThat(result, is(Hello KSUG!));
781. framework
RestTemplate restTemplate = new RestTemplate();
!
MockRestServiceServer mockServer =
MockRestServiceServer.createServer(restTemplate);
!
mockServer.expect(requestTo(/hello))
.andRespond(withSuccess(Hello KSUG!, MediaType.TEXT_PLAIN));
!
String result = restTemplate.getForObject(/hello, String.class);
!
mockServer.verify();
assertThat(result, is(Hello KSUG!));
817. 애노테이션
@Controller
public class ExampleController {
!
@InitBinder
public void localInitBinder(WebDataBinder webDataBinder) {
// webDataBinder.registerCustomEditor(requiredType, propertyEditor);
}
!
@ModelAttribute(embeddedDatabaseTypes)
public ListEmbeddedDatabaseType localModelAttribute() {
return Arrays.asList(EmbeddedDatabaseType.values());
}
!
@ExceptionHandler(IllegalStateException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public @ResponseBody String exHandler(IllegalStateException exception) {
return String.format(Local Error!);
}
!
}
828. 애노테이션
@ControllerAdvice
public class GolbalExceptionHandler {
!
@ExceptionHandler(Exception.class)
public String default(Exception exception) {
return String.format(Default Error: %s, exception.getMessage());
}
!
@ExceptionHandler(AjaxRequestExceptoin.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public String ajax(AjaxRequestExceptoin exception) {
return String.format(Ajax Error: %s, exception.getMessage());
}
!
// may also add globally applicable @InitBinder
// and @ModelAttribute methods
!
}
888. Class
class KSUGWebApplicationInitializer
implements WebApplicationInitializer {
!
@Override
public void onStartup(ServletContext servletContext)
throws ServletException {
AnnotationConfigWebApplicationContext wac = new Annotation...Context();
wac.register(KSUGWebAppConfig.class);
!
ServletRegistration.Dynamic registration = servletContext
.addServlet(dispatcher, new DispatcherServlet(wac));
registration.setLoadOnStartup(1);
registration.addMapping(/);
}
!
}
898. Class
public class KSUGWebApplicationInitializer
extends AbstractAnnotationConfigDispatcherServletInitializer {
!
@Override
protected Class?[] getRootConfigClasses() {
return new Class?[0];
}
!
@Override
protected Class?[] getServletConfigClasses() {
return new Class?[]{ KSUGWebAppConfig.class };
}
!
@Override
protected String[] getServletMappings() {
return new String[]{ / };
}
!
}
908. Class
public class KSUGWebApplicationInitializer
extends AbstractAnnotationConfigDispatcherServletInitializer {
!
@Override
protected Class?[] getRootConfigClasses() {
return new Class?[0];
}
!
@Override
protected Class?[] getServletConfigClasses() {
return new Class?[]{ KSUGWebAppConfig.class };
}
!
@Override
protected String[] getServletMappings() {
return new String[]{ / };
}
!
}
949. 제외
@Configuration
@EnableWebMvc
public class InterceptorExampleConfig extends WebMvcConfigurerAdapter {
!
@Override
public void addInterceptors(InterceptorRegistry registry) {
!
registry.addWebRequestInterceptor(new AllInterceptor());
!
registry.addWebRequestInterceptor(new IncludeInterceptor())
.addPathPatterns(/include);
!
registry.addWebRequestInterceptor(new ExcludedInterceptor())
.addPathPatterns(/**)
.excludePathPatterns(/include/**);
!
}
!
}
1069. 다루기
public ListPlayer getPlayers() {
ParameterizedTypeReferenceListPlayer playersTypeRef =
new ParameterizedTypeReferenceListPlayer(){};
!
ResponseEntityListPlayer responseEntity =
restTemplate.exchange(playersJsonDataUrl
, HttpMethod.GET
, HttpEntity.EMPTY
, playersTypeRef);
!
if(HttpStatus.OK == responseEntity.getStatusCode()) {
return responseEntity.getBody();
}
!
return Collections.emptyList();
}