在之前学习Spring+SpringMVC+Mybatis框架时,我们学习了多种配置spring程序的方式,例如:使用XML,注解,Java配置类,或者是将它们结合使用,但配置文件配置起来依然过于复杂,而我们接下来要学习的SpringBoot就帮助我们解决了这个问题,它是帮助我们简单,快速地创建一个独立的,生产级别的Spring应用,它的底层也是Spring,大多数SpringBoot应用只需要编写少量配置即可快速整合Spring平台以及第三方技术,表现在开箱即用,设置可修改的,合理的默认值,提供一系列大型项目通用的非功能性程序,并且约定大于配置,基本不需要主动编写配置类,也不需要XML配置文件
总的来说SpringBoot存在的意义就是为了简化开发,简化配置,简化整合,简化部署,简化监控,简化运维
系统要求:
maven 3.6.3或者更高版本 java 1.8+
版本过低的小伙伴记得去下载更高的版本哦
实现springboot的使用:
创建maven工程:
第一步:创建Empty Project,注意不是New Project
第二步:在上述创建完成的项目中右击添加Maven模块,如下所示
配置pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>SpringBoot1</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!--第一步:引用springBoot父项目,springboot的父项目提供了一些默认的配置和依赖管理--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </parent> <dependencies> <!--第二步:导入该依赖可获得web场景的各种依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
在springboot中依赖不需要写版本是因为它在父依赖中将所有jar包的依赖版本都声明好了,且它们之间并不会发生冲突。
启动器Starter有什么作用?
它是一组预定义的依赖项集合,旨在简化spring应用程序的配置和构建过程,它包含了一组相关的依赖项,以便在启动应用程序时,自动导入所需的库,配置和功能。
1:简化依赖:通过管理和捆绑一组相关的依赖项,减少了手动解析和配置依赖项的工作,只要导入一个相关的starter依赖,即可获得应用程序所需的全部依赖。
2:自动配置:它能够在应用程序启动时自动配置所需的组件和功能,通过根据类路径和其他设置的自动检测,从而使应用程序的配置变得简单和维护成本降低。
官方提供的场景:命名为:spring-boot-starter-*
第三方提供场景:命名为: *-spring-boot-starter
创建访问类:
@springbootApplication是springboot启动类上的一个注解,是一个组合注解,也就是由其他注解组合起来,组成该注解的作用也被赋予给@springbootApplication,它的主要作用是标记说明这个类是springboot的主配置类,springboot可以运行这个类里面的main()方法来启动程序
主要由三个子注解组成:
@SpringBootConfiguration:它是一个组合注解,用于表示这是一个Spring Boot配置类。它相当于@Configuration注解,用于定义配置类 @EnableAutoConfiguration:这个注解用于开启自动配置功能。它会根据项目中的依赖和配置,自动配置Spring Boot应用程序所需的各种组件和配置 @ComponentScan:用于指定Spring Boot应用程序的组件扫描路径。它会自动扫描并注册带有注解的组件,使它们可以在应用程序中被使用。默认情况下,它会扫描当前包及其子包下的所有组件。
上述这三个注解一起使用,可以方便地配置和启动一个Spring Boot应用程序。
启动类:
package com.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MainApplication { public static void main(String[] args) { SpringApplication.run(MainApplication.class); } }
接下来我们想实现访问控制方法,将该方法的返回值显示在浏览器上
package com.springboot.Controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; //@RestController是一个组合注解,它是由@ResponseBody和@Controller等组合而成的 @RestController public class HelloSpringboot { @RequestMapping("/hello") public String showMessage(){ return "Hello springboot2"; } }
注:@ResponseBody注解的作用
将方法的返回值直接作为HTTP响应的内容返回给客户端,而不是将返回值视为视图名,再通过视图解析器解析为视图。
我们启动项目,当控制台输出如下所示,即为项目启动成功!
浏览器中访问结果如下所示:
和之前的spring相比较,springboot是不是很方便呢,但需要注意的是,springboot只是能为我们快速搭建一个项目,但是它底层依然还是沿用springmvc,mybatis,spring的内容