1.spring-boot-starter-parent
spring推荐我们按照下面的方式使用spring-boot-starter-parent,这个父Pom的作用是提供常用jar包版本控制的。打开源文件可以惊奇得发现,spring-boot-starter-parent的parent是 spring-boot-dependencies,spring-boot-dependencies的作用我们马上会说。
<parent>
<groupId> org.springframework.boot </ groupId>
<artifactId> spring-boot-starter-parent </ artifactId>
<version> 2.0.0.BUILD- SNAPSHOT </ version>
</ parent>
但是在实际过程中我们一般使用自己公司的parent,如何解决这个问题呢?如下,在项目主POM中<dependencyManagement>节点下面定义。
<dependencyManagement>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.4.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>
需要注意spring-boot-dependencies只能在dependencyManagement中声明,而不能在子模块中出现,因为spring-boot-dependencies中没有声明引入任何jar包,只是一个pom配置,打开maven仓库可以看到,它里面定义了很多依赖声明。
如果想在项目中使用spring-boot-dependencies中的jar包,但是不用默认版本,需要在dependencyManagement中指定版本,并且需要在spring-boot-dependencies之前。
2.starters
startrts(启动器)是里面包含了一系列依赖描述,方便你在项目中使用。比如
if you want to getstarted using Spring and JPA for database access, just include the spring-boot-starter-data-jpa dependency in your project, and you are good to go.
官方启动器一般是spring-boot-starter-*。
第三方启动器命名一般是*-spring-boot-starter。
下面是一些常用的Starters.
名称 | 描述 |
---|---|
核心入门者,包括自动配置支持,日志记录和YAML | |
使用Apache ActiveMQ启动JMS消息传递 | |
使用Spring AMQP和Rabbit MQ的入门者 | |
使用Spring AOP和AspectJ进行面向方面编程的入门者 | |
使用Apache Artemis开始JMS消息传递 | |
使用Spring Batch的入门者 | |
Starter使用Spring Framework的缓存支持 | |
Starter使用Spring Cloud Connectors,可简化Cloud Foundry和Heroku等云平台中的服务连接 | |
入门使用Cassandra分布式数据库和Spring Data Cassandra | |
使用Cassandra分布式数据库和Spring Data Cassandra Reactive的初学者 | |
使用Couchbase面向文档的数据库和Spring Data Couchbase的初学者 | |
初级用于使用Couchbase面向文档的数据库和Spring Data Couchbase Reactive | |
使用Elasticsearch搜索和分析引擎和Spring Data Elasticsearch的入门者 | |
使用Spring数据JPA与Hibernate的入门者 | |
使用Spring Data LDAP的入门者 | |
入门使用MongoDB面向文档的数据库和Spring Data MongoDB | |
入门使用MongoDB面向文档的数据库和Spring Data MongoDB Reactive | |
初学者使用Neo4j图形数据库和Spring Data Neo4j | |
使用Spring Data Redis和Lettuce客户端使用Redis键值数据存储的入门者 | |
初学者使用Redis键值数据存储以及Spring Data Redis反应器和Lettuce客户端 | |
Starter使用Spring Data REST通过REST公开Spring Data存储库 | |
启动Spring Data Solr使用Apache Solr搜索平台 | |
使用FreeMarker视图构建MVC Web应用程序的入门者 | |
使用Groovy模板视图构建MVC Web应用程序的入门者 | |
使用Spring MVC和Spring HATEOAS构建基于超媒体的RESTful Web应用程序的入门者 | |
使用Spring Integration的入门者 | |
将JDBC与Tomcat JDBC连接池配合使用的初学者 | |
使用JAX-RS和Jersey构建RESTful Web应用程序的入门者。替代方案 | |
使用jOOQ访问SQL数据库的入门者。替代 | |
用于阅读和编写json的初学者 | |
使用Atomikos启动JTA交易 | |
使用Bitronix启动JTA交易 | |
春季启动Narayana JTA初学者 | |
Starter使用Java Mail和Spring Framework的电子邮件发送支持 | |
使用Mustache视图构建Web应用程序的入门者 | |
春季启动石英起动器 | |
Starter使用Spring Security | |
Starter用于测试包含JUnit,Hamcrest和Mockito等库的Spring Boot应用程序 | |
使用Thymeleaf视图构建MVC Web应用程序的入门者 | |
通过Hibernate Validator使用Java Bean验证的入门者 | |
使用Spring MVC构建Web的初学者,包括RESTful应用程序。使用Tomcat作为默认的嵌入容器 | |
使用Spring Web Services的入门者 | |
使用Spring Framework的Reactive Web支持构建WebFlux应用程序的入门者 | |
使用Spring Framework的WebSocket支持构建WebSocket应用程序的入门者 |
3.Auto-configuration
您需要选择加入@EnableAutoConfiguration或 @SpringBootApplication注释到您的某个@Configuration类来自动配置。
4.spirngbean和依赖注入