原文: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; } }
说实话上面这些配置仍是有些复杂