摘要:
概述 当一个方法标注@Async注解时,该方法的调用将异步发生;这意味着调用者将在调用后立即返回,方法的实际执行将发生在提交给Spring TaskExecutor的任务中。 示例 示例1 使用@EnableAsync注解启用异步机制 @EnableAsync @Configuration publ 阅读全文
摘要:
定义 /** * A BeanDefinition describes a bean instance, which has property values, * constructor argument values, and further information supplied by * c 阅读全文
摘要:
类图 开发人员可以指定不同的前缀来创建资源路径,进而从不同位置加载资源,如下表所示: ResourceLoader Spring ResourceLoader为开发人员提供了一个统一的getResource()方法来通过资源路径检索外部资源,其中方法如下图所示: Spring core/Web提供了 阅读全文
摘要:
ApplicationContext ApplicationContext是Spring的高级容器。 与BeanFactory类似,它可以加载bean定义并根据请求分发bean;此外,它还添加了很多特定的功能,比如:从属性文件解析文本消息、将应用程序事件发布到感兴趣的事件侦听器。 定义 public 阅读全文
摘要:
初探getBean()方法 在使用Spring的时候,可以通过如下方式调用getBean方法来获取某个Bean: User user = context.getBean(User.class); AbstractApplicationContext中定义了一系列getBean方法,代码如下: // 阅读全文
摘要:
Spring框架的主要特性之一是IoC(控制反转)容器,它负责管理应用程序中的对象,它通过依赖注入来实现控制反转。 org.springframework.beans 和 org.springframework.context 包路径下的接口或者类为Spring IoC容器的实现提供最基本的支持。 阅读全文
摘要:
Spring的整体架构 解读: 从上图可知Spring核心容器由Core、Bean、Context和SpEL几个模块组成,相关解读见下表: Spring AOP Spring集成了AspectJ作为AOP的特定实现。 AOP的底层原理是代理模式。 Spring MVC Spring MVC以Disp 阅读全文
摘要:
CriteriaQuery 源码定义 CriteriaQuery定义在包路径javax.persistence.criteria下,其定义如下: /** * The <code>CriteriaQuery</code> interface defines functionality that is 阅读全文
摘要:
源码 在Spring Data JPA相关的文章[地址]中提到了有哪几种方式可以构建Specification的实例,该处需要借助CriteriaBuilder,回顾一下Specification中toPredicate方法的定义,代码如下: /** * Creates a WHERE clause 阅读全文
摘要:
源码 在前面关于SimpleJpaRepository的文章[地址]中可以得知,SimpleJpaRepository间接实现了JpaSpecificationExecutor接口,本文就详细探究一下该接口。 JpaSpecificationExecutor的定义如下: /** * Interfac 阅读全文
摘要:
源码 SimpleJpaRepository的定义如下: /** * Default implementation of the {@link org.springframework.data.repository.CrudRepository} interface. This will offer 阅读全文
摘要:
Executors java.util.concurrent下的Executors工具类提供了如下几个方法,代码如下: /** * Creates a single-threaded executor that can schedule commands * to run after a given 阅读全文
摘要:
一、饱和策略(线程池任务拒绝策略) ThreadPoolExecutor构造函数的RejectedExecutionHandler handler参数表示当提交的任务数超过maxmumPoolSize与workQueue之和时,任务会交给RejectedExecutionHandler来处理,此处我 阅读全文
摘要:
一、线程池的属性 二、详解ThreadPoolExecutor 上文提到可以通过显式的ThreadPoolExecutor构造函数来构造特定形式的线程池,ThreadPoolExecutor是java.util.concurrent包以内部线程池的形式对外提供线程池管理、线程调度等服务,此处我们来了 阅读全文
摘要:
延时队列 DelayQueue是一个支持延时获取元素的使用优先级队列实现的无界的阻塞队列。 在创建元素时可以指定多久才能从队列中获取当前元素,只有在延迟期满时才能从队列中提取元素。 类图如下: DelayQueue的定义以及构造函数如下: public class DelayQueue<E exte 阅读全文