🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 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](http://github.com/spring-projects/spring-boot/tree/master/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/CompilerAutoConfiguration.java)子类。