59.1.1 推断”grab”依赖

标准的Groovy包含一个@Grab注解,它允许你声明对第三方库的依赖。这项有用的技术允许Groovy以和Maven或Gradle相同的方式下载jars,但不需要使用构建工具。

Spring Boot进一步延伸了该技术,它会基于你的代码尝试推导你”grab”哪个库。例如,由于WebApplication代码上使用了@RestController注解,”Tomcat”和”Spring MVC”将被获取(grabbed)。

下面items被用作”grab hints”:

items Grabs
JdbcTemplate,NamedParameterJdbcTemplate,DataSource JDBC应用
@EnableJms JMS应用
@EnableCaching 缓存抽象
@Test JUnit
@EnableRabbit RabbitMQ
@EnableReactor 项目重构
extends Specification Spock test
@EnableBatchProcessing Spring Batch
@MessageEndpoint,@EnableIntegrationPatterns Spring集成
@EnableDeviceResolver Spring Mobile
@Controller,@RestController,@EnableWebMvc Spring MVC + 内嵌Tomcat
@EnableWebSecurity Spring Security
@EnableTransactionManagement Spring Transaction Management

想要理解自定义是如何生效的,可以查看Spring Boot CLI源码中的CompilerAutoConfiguration子类。