文档章节

学习总结(2016年10月3日 )

编走编想
 编走编想
发布于 2016/10/03 21:54
字数 673
阅读 44
收藏 0

1. Linux 中的线程

原文:http://blog.csdn.net/ctthuangcheng/article/details/8914712

长久以来,Linux 并没有线程的概念。Linux 中的线程是使用子进程模拟的。在 2.6 以前的版本,Linux 的线程是靠 pthread 库实现的,但是其只实现了 POSIX 中对线程定义的几条要求中的一条,相去甚远。

在 2.6 之后,task_struct 结构中增加了一个 tgid。这个数据结构上的变化使得 Linux 中的线程完整实现了 POSIX 的要求。

2. DDD、CQRS 与 EventSourcing

原文:http://www.uml.org.cn/zjjs/201609221.asp

DDD 中的聚合和聚合根

聚合指的是一组内聚的实体和值对象。 聚合根指的就是这一组聚合的根对象。聚合之间的交互都必须通过聚合根进行,不能绕过聚合根直接和其下面的实体进行交互。

DDD 聚合

聚合与一致性

聚合内部要保证强一致性,聚合与聚合之间要保证最终一致性。

EventSourcing 是否适合互联网

大量的 log 数据和数据预热等问题存在,我不太认为 EventSourcing 适合互联网应用。当然这也只是我现阶段的看法。

3. Spring 4 新特性

用 Groovy DSL 配置 Spring Bean

原文:http://jinnianshilongnian.iteye.com/blog/1991830

Spring 4.0 引入了 Groovy DSL,但目前看还不是很完善,不推荐大规模使用。

4. Slf4J

Logger.error(String message, Object... args) args 中如果最后一个是 Throwable,且没有匹配到 {} 的话,便会打印出异常栈

5. CORS

原文: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;
	}
}

说实话上面这些配置还是有些复杂

© 著作权归作者所有

共有 人打赏支持
编走编想
粉丝 143
博文 126
码字总数 107958
作品 0
海淀
程序员
限额15人!与美国MySQL研发总监来场8.0的巅峰对话!

喜大普奔!刚参加完Percona Live Europe大会的MySQL优化器研发总监Manyi Lu将于本月造访中国,获悉这一消息的我们有幸邀请到了Manyi,与大家展开一次面对面交流,分享最新发布的MySQL 8.0优化...

DBAplus社群
2016/10/12
0
0
2016年度读书单

2016年01月01日 《HBase 管理指南》 2016年01月04日 《Hadoop技术详解》 2016年02月28日 《hive编程指南》 2016年03月13日 《Java并发编程》 2016年05月02日 《大型分布式网站架构设计与实践...

Ryan-瑞恩
2015/12/31
109
0
致敬感动的“自己”

想了许久,还是写出来,并不是让别人怎么评价我,我只是想给自己一个鼓励和信任。 ------题记 2016年不平凡的一年,从3月份到10月份,每日奋战五小时来学习linux。每周日与同学们一起学习、一...

二进制卤蛋
2017/02/22
0
0
2017 Java 工程师面试总结

面试的岗位是Java后台开发,面的公司不多,主要有美团点评-网易-网易有道-携程-华为-中兴-科大讯飞-烽火通信这些公司。从前到后简单记录了自己面试时候遇到的问题,以及对面试给了一点点小的...

u013322876
2017/04/03
0
0
岁序更新 观往知来

岁序更新 观往知来 心有猛虎,细嗅蔷薇;盛宴之后,泪流满面 | 忆2016 展2017 目录 1.见猎心喜 如梦初醒 2.折节向学 孳孳不息 3.触目如故 高瞻远瞩 1.见猎心喜 如梦初醒 萌芽:大二下学期初,...

guangcheng0312q
2017/01/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
45分钟前
1
0
AVA中CAS-ABA的问题解决方案AtomicStampedReference

了解CAS(Compare-And-Swap) CAS即对比交换,它在保证数据原子性的前提下尽可能的减少了锁的使用,很多编程语言或者系统实现上都大量的使用了CAS。 JAVA中CAS的实现 JAVA中的cas主要使用的是...

码代码的小司机
47分钟前
2
0
Android JNI开发系列(十三) JNI异常处理

JNI 异常处理 JNI异常与JAVA处理异常的区别 JAVA 有异常处理机制,而JNI没有 如果JAVA中异常没有捕获,后面的代码不会执行,JNI会执行 JAVA编译时的异常,是在方法显示的声明了某一个异常,编...

蔡小鹏
今天
2
0
简单介绍Java 的JAR包、EAR包、WAR包区别

WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。War专用于Web方面。大部分的JAVA WEB工程,都是打成WAR包进行发布的。 War是...

Linux就该这么学
今天
3
0
Qt那些事0.0.7

在帮助文档(Overview - QML and C++ Integration)中随缘遇到一张图,是关于C++对象与QML整合介绍的,值得标记下来,虽然大部分功能也有所涉猎,但是还是留个记号,万一哪天我失忆了还想写Q...

Ev4n
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部