原文:http://blog.csdn.net/ctthuangcheng/article/details/8914712java
長久以來,Linux 並無線程的概念。Linux 中的線程是使用子進程模擬的。在 2.6 之前的版本,Linux 的線程是靠 pthread 庫實現的,可是其只實現了 POSIX 中對線程定義的幾條要求中的一條,相去甚遠。spring
在 2.6 以後,task_struct 結構中增長了一個 tgid。這個數據結構上的變化使得 Linux 中的線程完整實現了 POSIX 的要求。api
原文:http://www.uml.org.cn/zjjs/201609221.asp數據結構
聚合指的是一組內聚的實體和值對象。 聚合根指的就是這一組聚合的根對象。聚合之間的交互都必須經過聚合根進行,不能繞過聚合根直接和其下面的實體進行交互。app
聚合內部要保證強一致性,聚合與聚合之間要保證最終一致性。cors
大量的 log 數據和數據預熱等問題存在,我不太認爲 EventSourcing 適合互聯網應用。固然這也只是我現階段的見解。less
原文:http://jinnianshilongnian.iteye.com/blog/1991830dom
Spring 4.0 引入了 Groovy DSL,但目前看還不是很完善,不推薦大規模使用。ide
Logger.error(String message, Object... args) args 中若是最後一個是 Throwable,且沒有匹配到 {}
的話,便會打印出異常棧flex
原文:https://spring.io/blog/2015/06/08/cors-support-in-spring-framework 簡單的 demo:https://spring.io/guides/gs/rest-service-cors/
Cross-origin resource sharing (CORS) is a W3C specification implemented by most browsers that allows you to specify in a flexible way what kind of cross domain requests are authorized, instead of using some less secured and less powerful hacks like IFrame or JSONP.
Spring 4.2 中增長了完善的 CORS 支持,既能夠在 Controller 類級別和方法級別上進行配置,也能夠進行全局配置。
類級別配置:
@CrossOrigin(maxAge = 3600) @RestController @RequestMapping("/account") public class AccountController { @CrossOrigin(origins = "http://domain2.com") @RequestMapping("/{id}") public Account retrieve(@PathVariable Long id) { // ... } @RequestMapping(method = RequestMethod.DELETE, value = "/{id}") public void remove(@PathVariable Long id) { // ... } }
全局配置:
@Configuration @EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**") .allowedOrigins("http://domain2.com") .allowedMethods("PUT", "DELETE") .allowedHeaders("header1", "header2", "header3") .exposedHeaders("header1", "header2") .allowCredentials(false).maxAge(3600); } }
若是使用 Spring Boot,則能夠使用下面的配置:
@Configuration public class MyConfiguration { @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurerAdapter() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**"); } }; } }
當使用 Spring Security 時,爲了使 Spring Security 也支持 CORS,則須要基於 Filter 支持 CORS:
@Configuration public class MyConfiguration { @Bean public FilterRegistrationBean corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); config.addAllowedOrigin("http://domain1.com"); config.addAllowedHeader("*"); config.addAllowedMethod("*"); source.registerCorsConfiguration("/**", config); FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source)); bean.setOrder(0); return bean; } }
說實話上面這些配置仍是有些複雜