目录
概念
1、SpringBoot
SpringBoot是简化了Spring的各项配置,能够实现Spring的快速开发的一个开箱即用的框架;是对 Spring 的整个技术栈的整合;是 J2EE 一站式开发的解决方案。
2、微服务
(1)微服务是一种架构风格(服务微化)
(2)对于微服务而言,一个应用应该是一组小型服务,服务之间通过 HTTP 来互通。
(3)每一个功能都应该是一个可独立替换独立升级的软件单元。
SpringBoot 环境搭建(IDEA)
1、用 IDEA 的向导生成 SpringBoot 项目
(1)生成过程:new project ==> Spring Initialize(如果没有这个选项,可能是由于 IDEA 版本问题,只有旗舰版才有,社区版没有) ==>根据向导修改相关信息即可。
(2)生成的项目会自带入口程序,我们只需要实现业务逻辑即可。
(3)项目会有一个 resource 目录,主要包含以下几个部分:
static:存放静态资源, js css images。
templates:存放模板页面,SpringBoot 默认 jar 包嵌入式 tomcat,不支持 jsp 页面,但是支持模板引擎(freemarker、thymeleaf 等)
application.properties:SpringBoot 应用的配置文件, 可以在其中修改一些默认的配置,如:端口号等。
2、自己新建 Maven 工程
(1)引入依赖 spring-boot-starter-web 和父项目 spring-boot-starter-parent。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
(2)利用 @SpringBootApplication 标注入口类,可以通过 scanBasePackages 属性来配置扫描目录,如果不配置默认扫描当前目录(@SpringBootApplication 标识的类所在的目录)及其子目录。然后调用 SpringApplication.run 来启动 SpringBoot。
@SpringBootApplication()
public class SpringbootHelloworldApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootHelloworldApplication.class, args);
}
}
(3)编写 @Controller ,然后运行服务,就可以在浏览器访问了。
注:也可以用 @RestController 来代替 @Controller , @RestController 包含 @Controller 和 @ResponseBody。
3、打包部署
(1)在 build 中加入 plugin:spring-boot-maven-plugin
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
(2)运行 Maven ==> Lifecycle ==>package 进行打包
(3)这样就会在 targe 目录下生成一个 jar 包,就可以直接用 java -jar 来部署了。
4、Maven 文件的理解
(1)Maven 中的父项目 spring-boot-starter-parent ,在该项目中又引用了一个父项目 spring-boot-dependencies 。在这个项目中管理了 Spring 所有依赖的版本号,也称之为 SpringBoot 的版本仲裁中心。 这就使得在我们的 Maven 中可以不指定版本。
(2)spring-boot-starter:SpringBoot 的场景启动器(例如:spring-boot-starter-web、spring-boot-starter-aop 等等)。
SpringBoot 提供了很多个场景启动器,其功能是导入对应场景正常运行时