一、SpringBoot简介
SpringBoot简化了Spring应用开发,不需要配置就能运行Spring应用,SpringBoot管理Spring容器、第三方插件,并提供很多默认系统级的服务。大部分Spring应用,无论是简单的web系统,还是构建复杂系统,都只需要少量配置和代码就能完成。这有点像每个公司基于Spring框架做的内部开发框架,不同的是,SpringBoot更完善、更强大。
SpringBoot通过starter来提供系统服务,SpringBoot已经提供了一系列starter,你也可以开发自己的starter。比如需要开发一个web应用,只要在pom.xml中添加依赖即可。诸如下面的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
SpringBoot常用的starter如下:
名称 | 作用 |
---|---|
spring-boot-starter-web | Web开发支持,默认使用Tomcat8 |
spring-boot-starter-aop | AOP开发支持,使用AspectJ |
spring-boot-starter-jdbc | Spring JDBC |
spring-boot-starter-data-jpa | JPA方式访问数据库,使用Hibernate作为JPA的实现 |
spring-boot-starter-data-elasticsearch | 集成Elasticsearch,默认访问localhost:9200 |
spring-boot-starter-data-redis | 集成Redis,使用JRedis,默认链接localhost:6379 |
spring-boot-starter-cache | 缓存,支持多种缓存方式,如本地的、Redis、ehcache等 |
spring-boot-devtools | 应用程序快速重启的工具,提升开发体验 |
spring-boot-starter-data-mongodb | 集成MongoDB,默认访问mongodb://localhost/test |
spring-boot-starter-data-neo4j | 集成neo4j,默认访问localhost:7474 |
spring-boot-starter-data-gemfire | 集成分布式缓存 |
spring-boot-starter-data-solr | 基于Apache Lucene的搜索平台,默认访问http://localhost:8983/solr |
spring-boot-starter-data-cassandra | 集成Cassandra,默认访问localhost:7474 |
spring-boot-starter-data-ldap | 集成ldap |
spring-boot-starter-activemq | 消息集成ActiveMQ支持 |
spring-boot-starter-amqp | 消息集成AMQP协议支持,如支持RabbitMQ |
spring-boot-starter-jta-atomikos | 分布式事务支持,使用atomikos |
spring-boot-starter-jta-bitronix | 一个开源的分布式事务支持 |
spring-boot-starter-test | 包含JUnit、Spring Test、Hamcrest、Mockito等测试工具 |
spring-boot-starter-webservices | webservice支持 |
spring-boot-starter-websocket | websocket支持 |
spring-boot-starter-jersey | REST应用和Jersey支持 |
spring-boot-starter-freemarker | Freemarker支持 |
相比于Spring,SpringBoot具有以下优点:
- 实现约定大于配置,是一个低配置的应用系统框架,不像spring那样“地狱般的配置体验”,SpringBoot不需要配置或者极少配置,就能使用Spring大量的功能。
- 提供了内置的Tomcat或者Jetty容器
- 通过依赖的jar包管理、自动装配技术,容易支持与其他技术体系、工具集成。
- 支持热加载,开发体验好。也支持SpringBoot系统监控,方便了解系统运行状况。