Spring Boot由一些模块构成,如spring-boot
, spring-boot-autoconfigure
, spring-boot-starters
, spring-boot-cli
,spring-boot-actuator
等。
1. spring-boot
主库,为其他模块提供特性支持。包括以下内容:
SpringApplication
类,提供静态方法,方便编写独立运行的Spring应用。唯一的任务是创建和刷新一个合适的Spring ApplicationContext
。
嵌入式web应用,自带容器(Tomcat, Jetty等)。
2. spring-boot-autoconfigure
Spring Boot可以基于classpath下的内容配置通用应用的大部分模块。一个@EnableAutoConfiguration
注解触发Spring上下文的自动配置。
自动配置尝试推测用户可能需要的bean。例如,如果H2DB在classpath中,但是用户没有配置任何db连接,那么spring-boot-autoconfigure
推断用户需要一个in-memory
的db,因此自动配置为用户配置(默认创建的h2db的db名为testdb, 用户名为caiwan,密码无)。自动配置优先级低于用户自定义的bean。
3. spring-boot-starters
starters是一系列便利的依赖描述,用户可以增加到应用中,并由此取得Spring和相关技术的 一站式配置体验,无需查看sample代码并贴来贴去。例如,若用户想要使用Spring和JPA来访问db,则只需包含spring-boot-starter-data-jpa
依赖到pom
中即可。
4. spring-boot-cli
Spring的命令行应用,编译和运行Groovy源码,只需极少的代码就可以运行应用,Spring CLI还可以监视文件,在它们改变时自动重新编译和重启。
5. spring-boot-actuator
spring boot actuator提供额外的自动配置,为你的应用装饰一些特性,使应用在生产环境下也可以快速部署和支持。例如,若你正在编写一个JSON web服务,该模块会提供一个服务器,安全,日志,外部化配置,管理端点(management endpoints),评审等。关闭这些内建特性,或者扩展或替代它们都很容易。
6. spring-boot-loader
Spring Boot Loader提供秘籍允许你构建可用java –jar直接运行的jar包。一般无需直接使用spring-boot-loader
,而是通过Gradle或Maven插件使用。