Spring Boot是一个用于快速构建基于Spring的应用程序的开发框架。它简化了Spring应用程序的初始化和配置过程,提供了一种约定优于配置的方式来构建应用程序。
内嵌tomat、jetty可以生成可以独立运行的jar包,不需要打成war包。
简化配置,大部分情况下,开发者只需要提供必要的配置信息,即可快速启动应用程序。
自动装配,可以根据类路径上的依赖和配置信息,自动推断应用程序的配置,减少了显示配置的工作。
快速集成,可以于大多数框架快速集成,只需要添加相应的 'starter’依赖。
添加全局依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.14</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
新建工程,在maven的dependencyManagement配置spring-boot-dependencies全局依赖设置,这样在使用springboot相关依赖的时候,不用写具体版本,会从上面引入的pom中读取对应jar包版本。
这里最新的springboot版本目前已经到3了,这里还是使用2.5版本,支持jdk8。
添加具体依赖如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
这里引入spring-boot-starter-web主要是为了演示启动一个web项目测试。
编写controller服务
@Controller
@Slf4j
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello(String data) {
log.info(data);
return "ok";
}
}
这里使用spring mvc 进行提供了一个controller服务接口。像其它的service,component可以像以前一样进行bean的配置,和原理spring使用方式一样。
编写启动类
@SpringBootApplication
public class StartApplication {
public static void main(String[] args) {
SpringApplication.run(StartApplication.class);
}
}
这里引入了一个新注解@SpringBootApplication,然后在main函数里使用 SpringApplication.run()方法来启动服务。这样就完成了一个springboot web工程的启动,默认情况下会扫描当前@SpringBootApplication注解所在类的包及子包下注解标识的bean。浏览器访问http://localhost:8080/hello就可以访问上面定义的接口。相对于原来的web开发方式是不是很简单,默认情况下没有配置任何东西。springboot自动使用默认值来进行配置服务。
当然可以在resource下创建一个application.properties文件来特定一些配置。如要修改web服务端口,可以通过
server.port=8090这样指定。很多配置项在IDE开发工具中都会有提示。
至于springboot原理后面文章慢慢说。