Spring(二十一):Spring EnableAsync异步方法与任务线程池TaskExecutor
Spring 提供了任务执行器(TaskExecutor
)来实现多线程和并发编程。使用ThreadPoolTaskExecutor
可实现一个基于线程池的TaskExecutor。
要实现任务异步执行,在配置为中添加@EnableAsync
开启对异步任务的支持,在执行Bean
的方法中使用@Async
注解来声明一个异步方法。
Spring(二十一):Spring EnableAsync异步方法与任务线程池TaskExecutor
Spring 提供了任务执行器(TaskExecutor
)来实现多线程和并发编程。使用ThreadPoolTaskExecutor
可实现一个基于线程池的TaskExecutor。
要实现任务异步执行,在配置为中添加@EnableAsync
开启对异步任务的支持,在执行Bean
的方法中使用@Async
注解来声明一个异步方法。
做为一个互联网开发人员,要善于**使用工具、利用工具、理解工具、再造工具、创造工具;**当进入工具再造阶段时,即使造的是重复的轮子,但轮子的类型或性质或实现轮子的方案有稍许不同,你就成了该轮子的专家了,就会有足够的底子来支撑创造新的工具。
作为一个互联网开发人员,理应关注 GitHub 上的一些热门开源项目,抽时间学习其中的新技术、新理念、新方法。本人是主做后台服务开发(Java),此篇主要整理Github上Top 10中与后台开发相关的开源项目。
Spring项目中,Spring的启动过程实际就是IoC
容器的启动过程,对于Web程序,IoC
容器启动过程就是建立上下文的过程。
ps 命令是 Process Status 的缩写,报告当前进程的快照。用于查看进程状态,可以查看哪些进程正在运行及所占资源情况等等。
kill 用于终止运行中的进程,可以通过指定进程号(pid)来杀死指定的进程。
Spring 的IoC
容器可以建立父子层级关联的容器体系,子容器可以访问父容器中的Bean
,但父容器不能访问子容器中的Bean
。
在容器内,Bean
的id
必须是唯一的,但子容器可以拥有一个和父容器id
相同的Bean
。父子容器体系增强了Spring容器架构的扩展性和灵活性,第三方可以通过HierarchicalBeanFactory
接口,为一个已经存在的容器添加一个或多个特殊用途的子容器,以提供一些额外的功能。
IoC(Inverse of Control)
控制反转:不是某种技术,而是一种设计思想,Spring IoC容器是该设计思想的实现。
控制反转包含两层意思,一是控制,二是反转。
DI(Dependency Injection)
依赖注入:是组件之间、对象之间的依赖关系由容器在运行期决定,即由容器动态的将某个依赖对象注入到组件中。
控制反转和依赖注入实际说的是同一件事,只是站在两个对立的角度来解释这件事。控制反转是站在调用者的角度来理解,本来由我自己来创建对象的,现在不需要这么做了,由容器直接给你所需要的;依赖注入是站在容器的角度来理解,你需要什么,我找到给你就是,你没必要自己创建了。
Spring(十七):获取ApplicationContext方式,获取所有Bean和RequestMapping
Spring 项目经常需要拿到上下文,通过上下文来获取 IoC 容器中注册的 Bean。
获取上下文有好几种方式,可以实现 ApplicationContextAware 接口,可以通过 ServletContext 获取,而通过 ContextLoader 来获取上下文在 Spring Boot 中并不适用,适用于 Spring 项目。
整理历史项目,Mybatis 配置文件及整合Spring,主要配置记录。只做参考,实际开发已不使用此配置。
Spring(十六):Spring ApplicationEvent 事件监听/发布
Spring的事件(Application Event)为Bean与Bean之间的消息通信提供了支持。当一个 Bean处理完一个任务之后,希望另外一个Bean知道并能做相应的处理,这时需要让另外一个Bean监听当前Bean所发送的事件。