目录
1. SpringBoot
简单介绍
1.1 SpringBoot
的简介
SpringBoot
是在2014年基于Spring4.0
开发的一款框架,它属于spring
家族的一员,其诞生的目的主要是为了简化开发spring
应用的步骤,开发一个应用不在需要繁琐的配置。
1.2 SpringBoot的优点
- 可快速创建独立运行的
Spring
项目,以及与主流的框架集成 - 使用内嵌的
Servlet
容器,引用无需打成War
包 starters
自动依赖与版本控制- 大量的自动配置,简化开发,且可修改默认值
- 无需配置
XML
- 准生产环境的运行时应用监控
- 与云计算的集成
2. 微服务简介
微服务的介绍
- 一个应用应该由一组小型服务组成,相互之间可以通过
HTTP
方式进行互通 - 每一个功能元素最终都是一个可独立替换和独立升级的软件单元
3. SpringBoot入门
3.1 创建一个maven
工程
3.2 导入相关的依赖
<!--这是SpringBoot的父级依赖,这样就代表这是一个SpringBoot项目了-->
<!--他还是一个特殊的启动器,提供了相关maven默认依赖,这样常用的包依赖就可不用写version标签-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
</parent>
<dependencies>
<!--标志着这是一个web项目-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3.3 编写启动类
package com.piggy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @SpringBootApplication 来标注一个主程序类,说明这是一个SpringBoot应用
*/
@SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args){
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}
3.4 编写Controller
package com.piggy.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello.action")
public String hello(){
return "Hello World";
}
}
3.5 运行启动类测试
4.POM文件探究
4.1. 父项目依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
</parent>
这是SpringBoot
的版本管理中心,他继承了spring-boot-dependencies
,里面内置了相关maven
依赖的版本信息。所以SpringBoot大多常用的依赖就不用加version
标签了
4.2 spring-boot-starter-web
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter
: springboot
场景启动器,内置了web模块正常运行所需的组件
当然,springboot还内置了很多的其他启动器(starter),适用于各种不同的场景,根据场景选用相应的启动器,就会导入相关的一系列依赖,可以说启动器就是一系列相关依赖的集合。
详细可以看下面官方文档关于starter的介绍
spring-boot-starts相关
4.3 主程序类
/**
* @SpringBootApplication 来标注一个主程序类,说明这是一个SpringBoot应用
*/
@SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args){
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}
@SpringBootApplication
此注解所修饰的类表示是SpringBoot
的主配置类,SpringBoot
就会运行此类的main
方法来启动SpringBoot
应用
进去可以看到其实是一个组合注解
@SpringBootConfiguration
:被此注解标注的类表示是SpringBoot
的配置类,其内部是Spring
的@Configuration
注解@EnableAutoConfiguration
:此注解告诉SpringBoot
开启自动配置功能,其内部是一个@AutoConfigurationPackage
注解,而@AutoConfigurationPackage
内部又是一个Spring
的底层注解@Import
注解用来给容器导入组件
里面还有一个AutoConfigurationImportSelector
注解,此注解是用来选择导入那些组件的选择器,会给容器导入非常多的自动配置类
SpringBoot
在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入容器中
最终的作用是将主配置类(@SpringBootApplication
标注的类)所在的包及子包下的所有组件扫描到Spring
容器中
5. 使用Spring Initializer 快速创建Spring Boot项目
5.1 New–>Project–>Next
5.2 填写项目名和包结构
5.3 选择需要的模块(这里我选的是web模块)他会自己导入web
相应的依赖,最后点击Finish
创建成功后的结构如下:
这样SpringBoot
会自动给我们导入web工程所需要的基本依赖
5.4 导入依赖到本地仓库
5.5 项目结构说明
static
:保存相关的静态资源文件,如CSS
,JS
等templates
保存所有的模板页面(SpringBoot
使用内嵌的Tomcat
默认不支持JSP页面)可以使用模板引擎(thymeleaf
、freemarker
)等;application.properties
:SpringBoot
应用的配置文件,可以配置端口,项目名称,等等之类…