1.Spring Aearw:
Spring的依赖注入的最大亮点就是你所有的Bean对Spring容器的存在时没有意识的。但是在实际项目中,你不可避免的要用到Spring容器本身的功能资源,这时你的Bean必须要意识到Spring容器的存在,才能调用Spring所提供的资源,这就是所谓的Spring Aware。
2.多线程:
Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程。使用ThreadPoolTaskExecutor可实现基于线程池的TaskExecutor。我们要在配置类中通过@EnableAysnc开启对异步任务的支持,并通过在实际执行的Bean的方法中使用@Async注解来声明其是一个异步任务
3.计划任务
首先通过在配置类注解@EnableScheduling来开启对计划任务的支持,然后再要执行计划任务的方法上注解@Schedule,声明这是一个计划任务4.条件注解
@Conditional根据满足某一个特定条件创建一个特定的Bean。比方说,当某一个jar包在一个类路径下的时候,自动配置一个或多个Bean;或者只有某个Bean被创建才会创建另一个Bean。总的来说,就是根据特定条件来控制Bean的创建行为,这样我们可以利用这个特性进行一些自动的配置。
5.组合注解与元注解
所谓元注解其实就是可以注解到别的注解上的注解,被注解的注解称之为组合注解组合注解具备元注解的功能。如@configuration就是一个组合@Component注解,表明这个类其实也是一个Bean
6.@Enable*注解的工作原理
在本章的第一部分我们通过:
@EnableAsync 开启异步方法的支持
@EnableScheduling 开启计划任务的支持
通过简单的@Enable*来开启一项功能的支持,从而避免自己配置大量的代码,大大降低使用难度。通过观察这些@Enable*注解的源码,我们发现所有的注解都有一个@Import注解,@Import是导入配置类的,这也就意味着这些自动开启的实现其实是导入了一些自动配置的Bean。这些导入的配置方式主要分为以下三种类型
第一类:直接导入配置类
第二类:依据条件选择配置类
第三类:动态注册Bean
7.测试
测试是开发工作中不可缺少的部分。单元测试只针对当前开发的类和方法进行测试,可以简单的模拟依赖来实现,对运行环境没有依赖;但是仅仅进行单元测试是不够的,它只能验证当前类或方法能否正常工作,而我们想知道系统的各个部分组合在一起是否能正常工作,这就是继承测试存在的意义。
Spring提供了一个SpringJUnit4ClassRunner类,它提供了Spring TestContext Frameword的功能。通过@ContextConfiguration来配置Application Context,通过@ActiveProfiles确定活动的profile