文章目录
1 一些概念
1.1 Springboot
优点:
- 快速创建独立运行的Spring项目以及主流框架集成
- 使用嵌入式Servlet容器,应用无需打成war包
- starters自动依赖和版本控制
- 大量的自动配置,简化开发,也可以修改默认值
- 无需配置xml,无代码生成,开箱即用
- 准生产环境的运行时应用监控
- 与云计算的天然集成
1.2 微服务
- 2014,martin fowler写的博客让微服务流行起来
- 微服务:架构风格(服务微化)
- 一个应用应该是一组小型服务,可以通过HTTP的方式进行互通。
- 单体应用程序就是把所有的功能放在同一个项目中,这样有他的优点(编写、测试、部署、扩展等方便),而微服务提倡的是将每一个功能模块独立出来,在扩展的时候根据响应的需求赋值功能模块。
2 SpringBoot 入门
入门项目,点击查看
2.1 搭建环境
创建Maven项目
导入依赖及插件
<!-- 从 Spring Boot 继承默认配置 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<!-- 实现对 SpringMVC 的自动化配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- 可以将应用打包成一个可执行jar包-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.2.2.RELEASE</version>
</plugin>
</plugins>
</build>
2.2 编写业务代码
@RestController
@RequestMapping("/demo")
public class DemoController {
@GetMapping("/echo")
public String echo(){
return "echo";//返回值在响应的body中
}
}
2.3 启动服务
编写main方法
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
有两种方式可以启动服务,一种是直接在IDEA中启动服务,另一种是用IDEA导出jar包(Maven->项目->Lifecycle->package
),在命令行中启动(java -jar com.wxy.testSpringBoot-1.0-SNAPSHOT.jar
)
2.4 访问
localhost:8080/demo/echo
3 入门分析
3.1 启动器(starter)
依赖中的spring-boot-starter-web
是spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;
Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目中引入这些starter相关场景,该场景需要的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。
3.2 主程序类(主入口类)
@SpringBootApplication
标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的mian方法来启动SpringBoot应用。