dm_vincent的专栏

后端工程师,前端技术爱好者。

[Spring Boot] 5. Spring Boot中的ApplicationContext - 执行ApplicationContextInitializer初始化器

前面已经对Spring Boot启动过程进行过源码分析,对于代表容器上下文的关键字段ApplicationContext只是一笔带过。实际上,它的生命周期才应该是重点关注的。Spring Boot使用的ApplicationContext分两种场景,常规应用和Web应用使用的上下文类型不一样: 常...

2017-08-27 12:50:17

阅读数 12458

评论数 0

[Spring Boot] 4. Spring Boot实现自动配置的原理

入口注解类@EnableAutoConfiguration@SpringBootApplication注解中包含了自动配置的入口注解:@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherit...

2017-08-27 12:44:17

阅读数 11626

评论数 0

[Spring Boot] 3. Spring Boot实现自动配置的基础

在第一篇文章介绍Spring Boot启动过程,提到了Spring Boot的核心能力 - 自动配置。这个能力也是Spring Boot非常大的卖点之一。对这个能力,相信很多同学都会比较好奇,Spring Boot是如何实现它的呢?但是在详细探究Spring Boot是如何实现自动配置之前,首先需...

2017-08-20 23:00:20

阅读数 3407

评论数 1

[Spring Boot] 2. Spring Boot 启动过程定制化

在上一篇文章中,从源码角度介绍了Spring Boot的启动过程。启动的代码虽然只有短短的一行,但是背后所做的工作还真不少,其中有一些可以定制化的部分,主要分为以下几个方面: 初始化器(Initializer) 监听器(Listener) 容器刷新后置Runners(ApplicationRunn...

2017-08-13 22:45:21

阅读数 4612

评论数 1

[Spring Boot] 1. Spring Boot启动过程源码分析

关于Spring Boot,已经有很多介绍其如何使用的文章了,本文从源代码(基于Spring-boot 1.5.6)的角度来看看Spring Boot的启动过程到底是怎么样的,为何以往纷繁复杂的配置到如今可以这么简便。1. 入口类package com.example.demo;import or...

2017-08-05 21:25:54

阅读数 19151

评论数 5

[AOP] 7. 一些自定义的Aspect - Circuit Breaker

Circuit Breaker(断路器)模式关于断路器模式是在微服务架构/远程调用环境下经常被使用到的一个模式。它的作用一言以蔽之就是提高系统的可用性,在出现的问题通过服务降级的手段来保证系统的整体可用,而不至于因为部分问题导致整个系统不可用。用下面这张图可以很好的说明它能够解决的问题: 图片引...

2017-07-30 13:40:12

阅读数 742

评论数 0

[AOP] 6. 一些自定义的Aspect - 方法的重试(Retry)

前面的一系列文章介绍了AOP的方方面面: AOP的由来以及快速上手 AOP的两种实现-Spring AOP以及AspectJ Spring AOP中提供的种种Aspects - Tracing相关 Spring AOP中提供的种种Aspects - 异步执行 Spring AOP中提供的种种Asp...

2017-06-03 12:01:10

阅读数 1773

评论数 0

[AOP] 5. Spring AOP中提供的种种Aspects - 并发控制

本文继续讨论ConcurrencyThrottleInterceptor(基于Spring 4.3.7)。以及上一篇文章中遗留的一个关于SimpleAsyncTaskExecutor类中属性concurrencyLimit的问题。这些都和并发控制相关。但是这里需要事先说明的一点是,这些类和实现的年...

2017-04-05 11:30:22

阅读数 3436

评论数 0

[AOP] 4. Spring AOP中提供的种种Aspects - 异步执行

上一篇文章介绍了Spring AOP中提供的种种与Tracing相关的Aspects,还剩两个Aspects没有讨论: AsyncExecutionInterceptor ConcurrencyThrottleInterceptor 本文继续探讨和异步与并发相关一个Aspect,也是使用的比较普遍...

2017-03-19 15:52:39

阅读数 5189

评论数 0

[AOP] 3. Spring AOP中提供的种种Aspects - Tracing相关

在第一篇文章中,介绍了AOP的一些背景知识以及如何快速上手,然后在第二篇中详细分析了AOP的两种实现 - Spring AOP以及AspectJ。本文偏向于实践,继续介绍Spring AOP中提供的种种Legacy Aspects。虽然这些Aspects的历史已经比较久远了(好多都是在Spring...

2017-03-11 17:32:48

阅读数 3939

评论数 1

[AOP] 2. AOP的两种实现-Spring AOP以及AspectJ

在接触Spring以及种类繁多的Java框架时,很多开发人员(至少包括我)都会觉得注解是个很奇妙的存在,为什么加上了@Transactional之后,方法会在一个事务的上下文中被执行呢?为什么加上了@Cacheable之后,方法的返回值会被记录到缓存中,从而让下次的重复调用能够直接利用缓存的结果呢...

2017-02-26 22:29:18

阅读数 7940

评论数 5

[AOP] 1. AOP的由来以及快速上手

AOP从何而来技术的演化从来都不是随机现象。往往都是为了应对某种特定的问题,而形成的一系列切实可行解决方案或者优雅的最佳实践,然后把它们汇聚在一起,就形成了一个工具,一个库或者是一个框架。为应对Cross-cutting问题而生要了解AOP(Aspect Oriented Programming,...

2017-02-25 14:44:22

阅读数 2634

评论数 0

[JavaEE - JPA] 3. Spring Framework中的事务管理

前文讨论了事务划分(Transaction Demarcation)在EJB中是如何实现的,本文继续介绍在Spring Framework中是如何完成事务划分的。 我们已经知道了当采用Container事务类型的时候,事务划分主要有以下两种方案(参考这里): 使用JTA接口在应用中编码完成显...

2016-09-23 23:05:23

阅读数 5513

评论数 0

[Java 8 & Spring JDBC] 使用Spring JDBC和Lambda表达式简化DAO

使用Spring JDBC和Lambda表达式简化DAO 如果你需要向数据库中插入一条Item记录,那么会有类似下面的代码: Item对应的实体类型为: public class Item { public int name; public BigDecimal pric...

2015-07-09 10:48:27

阅读数 6325

评论数 3

提示
确定要删除当前文章?
取消 删除