Spring注解扫描:ComponentScan使用及原理详解
当下`Spring Boot`之所以能成为主流首选开发框架,得益于其核心思想:**约定大于配置**和`Spring`提供的基于注解配置式开发,解决了繁琐的`XML`文件配置问题,大大提高了开发效率。基于`Spring MVC`三层架构框架开发的项目中大量用到`@Controller, @Service...`等注解,即使这些类在不同包路径下,都能被注入到`Spring`容器中,然后可以相互之间进行依赖注入、使用。这时候就有一个问题了:`Spring`是如何将声明了`@Component`注解的Bean注入到`Spring`容器当中的呢?怎么做到bean的类定义可以随意写在不同包路径下?
Spring注解导入:@Import使用及原理详解
`@Import` 是 Spring 基于 Java 注解配置的主要组成部分,`@Import` 注解提供了类似 `@Bean` 注解的功能,向Spring容器中注入bean,也对应实现了与Spring XML中的<import/>元素相同的功能
分布式任务调度框架:XXL-JOB(入门篇)
将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“**调度中心**”负责发起调度请求。将任务抽象成分散的JobHandler,交由“执行器”统一管理,“**执行器**”负责接收调度请求并执行对应的JobHandler中业务逻辑。因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性;
分布式任务调度框架(一):Quartz
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统,“任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。其功能类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能,作为一个优秀的开源调度框架
JUC并发编程(三):并发编程基石之AQS
**AQS: AbstractQueuedSynchronizer**,顾名思义,翻译过来叫**抽象队列同步器**,它是JUC并发编程的**基石**,定义了一套多线程访问共享资源的同步器框架,众多同步类底层都是基于AQS实现的,如常用的ReentrantLock、Semaphore、CountDownLatch等。