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子类。