1.什么是Spring Boot ?
Spring Boot 是一个用于快速构建基于 Spring 框架的应用程序的开发框架。它简化了传统的 Spring 应用程序的配置和部署过程,使开发人员能够更专注于业务逻辑的实现。
Spring Boot 提供了默认的配置和约定,以便快速启动和运行 Spring 应用程序。它自动配置了许多常见的功能,如数据访问、安全性、日志记录等,使得开发人员不再需要手动配置这些功能,从而减少了开发和维护的工作量。
2.学习SpringBoot的原因
2.1 Spring Boot的优势
1. 简化配置:Spring Boot通过自动配置的方式,大幅简化了项目的配置流程。例如,它可以根据项目的依赖自动配置数据库连接、日志等常见配置,减少了开发人员手动配置的工作量。
2. 快速启动和开发:Spring Boot提供了一个快速启动的脚手架,可以快速搭建一个可运行的、可部署的Spring应用。它内置了一个嵌入式的Web服务器(如Tomcat),使得开发人员可以快速启动和测试应用,提高开发效率。
3. 微服务架构支持:Spring Boot天然支持微服务架构,通过使用Spring Cloud等相关工具,可以轻松构建和管理分布式系统。它提供了对服务注册和发现、负载均衡、断路器等常用微服务功能的集成和支持。
4. 开箱即用的功能模块:Spring Boot提供了大量的开箱即用的功能模块(Starter),包括数据库操作、安全认证、缓存、消息队列等,开发人员可以通过简单的配置和引入相关依赖,快速集成这些功能,减少了手动集成的复杂度。
5. 生态系统丰富:Spring Boot是Spring生态系统中的一个重要组成部分,与其他Spring项目(如Spring MVC、Spring Data等)无缝集成,提供了丰富的扩展和支持。同时,拥有庞大的社区,可以获得丰富的文档、教程和支持资源。
6. 自动化管理和监控:Spring Boot提供了一些监控和管理的功能,例如Actuator模块提供了对应用的健康检查、度量指标的收集和展示等。它可以帮助开发人员更好地理解应用的状态和性能,并进行必要的调整。
7. 高度可定制性:尽管Spring Boot提供了很多的默认配置和功能,但它也非常灵活,允许开发人员进行自定义和扩展。如果需要更加细粒度的配置或特定需求的处理,可以覆盖或扩展默认配置。
综上所述,学习使用Spring Boot可以使开发人员更加专注于业务逻辑的实现,而不需要过多关注项目的配置和集成问题。它提供了更快速、更方便的开发方式,帮助开发人员构建高效、可扩展的应用程序,并享受Spring强大的生态系统和广泛的支持。
2.2 简化了编码
例如:创建一个web项目时,使用spring需要在pom文件中导入多个依赖,而使用springBoot 则会帮助开发我们快速启动一个 web 容器,在 Spring Boot 中只需要在 pom 文件中 添加一个 starter-web 依赖即可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--点击进入该依赖后可以看到,Spring Boot 这个 starter-web 已经包含了多个依赖,包括之前在 Spring 工程中需要导入的依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<scope>compile</scope>
</dependency>
2.3 简化了配置
Spring Boot 更多的是采用 Java Config 的方式,对 Spring 进行配置。 新建一个类但是不用@Service 注解,也就是说,它是个普通的类,使它也成为一个 Bean 让 Spring去管理只需要@Configuration 和@Bean 两个注解即可
public class TestService {
public String sayHello () {
return "Hello Spring Boot!";
}
}
//对应的配置类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JavaConfig {
@Bean
public TestService getTestService() {
return new TestService();
}
}
@Configuration 表示该类是个配置类,@Bean 表示该方法返回一个 Bean。这样就把 TestService 作为 Bean 让Spring 去管理了,在其他地方如果需要使用该 Bean,和原来一样,直接使用@Resource 注解注入进来即可使用,非常方便。
@Resource
private TestService testService;
另外部署配置方面,原来 Spring 有多个 xml 和 properties 配置,在 Spring Boot 中只需要个 application.yml即可。
2.4 简化部署
在使用Spring时项目部署时需要在服务器上部署 tomcat,然后把项目打成war 包扔到 tomcat 里,在使用Spring Boot 后,不需要在服务器上去部署 tomcat,因为 Spring Boot 内嵌了 tomcat,只需要将项目打成 jar 包,然后 使用 java -jar xxx.jar 一键式启动项目。 另外,也降低对运行环境的基本要求,环境变量中有 JDK 即可。
2.5 简化了监控
可以引入 spring-boot-start-actuator 依赖,直接使用 REST 方式来获取进程的运行期性能参数,从而达到监控 的目的,比较方便。但是 Spring Boot 只是个微框架,没有提供相应的服务发现与注册的配套功能,没有外围 监控集成方案,没有外围安全管理方案,所以在微服务架构中,还需要 SpringCloud 来配合一起使用。
3. Spring Boot 的开发环境
3.1 jdk 的配置
使用 IDEA 进行开发,在 IDEA 中配置 jdk 的方式很简单,打开 File->Project Structure
1. 选择 SDKs
2. 在 JDK home path 中选择本地 jdk 的安装目录
3. 在 Name 中为 jdk 自定义名字
通过以上三步骤,即可导入本地安装的 jdk。如果是使用 STS 或者 eclipse 可以通过两步骤添加:
1、window->preference->java->Instralled JRES 来添加本地 jdk。
2、window-->preference-->java-->Compiler 选择 jre,和 jdk 保持一致。
3.2 Spring Boot 工程的构建
IDEA 中可以通过 File->New->Project 来快速构建 Spring Boot 工程。选择 Spring Initializr,在 Project SDK 中 选择刚刚导入的 jdk,点击 Next,到了项目的配置信息。
Group:填企业域名,一般采用域名反装的方式定义,例如使用 com.yan Artifact:填项目名称,例如工程名 demo,如果项目规模较大这里可能会采用模块名称
Dependencies:可以添加项目中所需要的依赖信息,根据实际情况来添加,这里只需要选择 Web 即可。