二、SpringBoot快速上手
环境准备:
-
Java8及以上
-
Maven3.5+
https://docs.spring.io/spring-boot/docs/2.7.14/reference/html/getting-started.html#getting-started
-
SpringBoot 2.x 最新版
开发工具:
- IDEA 2022
2.1 开发第一个SpringBoot应用程序
目的:
- 我们将学习如何快速的创建一个Spring Boot应用,并且实现一个简单的Http请求处理。通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。
- 掌握官网文档的基本使用。
实现步骤
Developing Your First Spring Boot Application:
https://docs.spring.io/spring-boot/docs/2.7.14/reference/html/getting-started.html#getting-started.first-application
-
创建普通的Maven工程;
-
在pom.xml中配置springboot的父类继承和web场景启动器;
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.14</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
-
编写主程序类;
package com.gs.boot; /** * 主程序类 * @SpringBootApplication:这是一个SpringBoot应用 */ @SpringBootApplication public class MainApplication { public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); } }
-
编写业务
-
在主程序的同级目录下,新建一个controller包,一定要在同级目录下,否则识别不到;
-
在包中新建一个HelloController类;
package com.gs.boot.controller; @RestController public class HelloController { @RequestMapping("/hello") public String home(){ return "Hello, SpringBoot!"; } }
-
-
测试:直接运行main方法
简单几步,就完成了一个web接口的开发,SpringBoot就是这么简单。所以我们常用它来建立我们的微服务项目!
简化配置
Application Properties:
https://docs.spring.io/spring-boot/docs/2.7.14/reference/html/application-properties.html#appendix.application-properties
application.properties修改端口号:
server.port=8088
简化部署
创建一个可执行的jar:
https://docs.spring.io/spring-boot/docs/2.7.14/reference/html/getting-started.html#getting-started.first-application.executable-jar
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
1、将项目打成jar包,点击 maven的 package,如果打包成功,则会在target目录下生成一个 jar 包。
2、打成了jar包后,就可以在任何地方运行了!命令:java -jar xxx.jar
SpringBoot的每一个项目都嵌套了一个tomcat服务器,项目打包后可以单独运行,就非常简单的创建了响应的接口,体现了微服务的概念。
注意点:取消掉cmd的快速编辑模式。
2.2 基于 Spring Initializr创建项目
基于 Spring Initializr 的 Web页面
Spring官方提供了非常方便的工具让我们快速构建应用,Spring Initializr:https://start.spring.io/
1、打开https://start.spring.io/;
2、填写项目信息;
3、点击”Generate Project“按钮生成项目,下载此项目;
4、解压项目包,并用IDEA以Maven项目导入,一路下一步即可,直到项目导入完毕;
5、如果是第一次使用,可能速度会比较慢,包比较多、需要耐心等待一切就绪;
基于 IDEA 的 Spring Initializr
1、创建一个新项目;
2、选择Spring Initializr,可以看到默认就是去官网的快速构建工具那里实现;
3、填写项目信息;
在当前页面将 https://start.spring.io 替换为阿里的 https://start.aliyun.com;
4、选择初始化的组件(初学勾选 Web 即可);
5、等待项目构建成功;
2.3 项目结构分析
通过上面步骤完成了基础项目的创建。就会自动生成以下文件。
1、程序的主启动类
2、一个 application.properties 配置文件
3、一个测试类
4、一个 pom.xml
pom.xml 分析
打开pom.xml,看看Spring Boot项目的依赖:
<!-- 父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.14</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 项目依赖 -->
<dependencies>
<!-- web场景启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 单元测试场景启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Maven插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
程序的主启动类
@SpringBootApplication
public class Springboot01HelloworldApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot01HelloworldApplication.class, args);
}
}
资源目录
- static:存放静态资源的目录
- templates:存放模板页面的目录
- application.properties:核心配置文件
2.4 自定义Banner
如何更改启动时显示的字符拼成的字母,SpringBoot呢?也就是 banner 图案;
只需一步:到项目下的 resources 目录下新建一个banner.txt 即可。
图案可以到:https://www.bootschool.net/ascii 这个网站生成,然后拷贝到文件中即可!
2.5 开发小技巧
Lombok
Lombok是一个在Java开发过程中用注解的方式,简化了 JavaBean 的编写,避免了冗余和样板式代码而出现的插件,让编写的类更加简洁。
Lombok原理:
- Lombok是将自动生成的代码织入字节码文件中,从而实现:源代码没有,但是字节码文件有——毕竟我们最终运行的是字节码文件,只要字节码文件中有即可。而这个过程因为要参与源文件编译,所以需要安装IDEA插件。
在IDEA安装Lombok插件:
- File —> Settings —> Plugins —> Browse repositories —> 搜索lombok(小辣椒)
加入依赖:
-
SpringBoot对Lombok已经进行了依赖管理,直接添加依赖,无需指定版本号。
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
使用Lombok注解:
-
@Getter/@Setter:自动生成getter/setter;
-
@ToString:自动重写 toString() 方法,会印出所有变量;
-
@EqualsAndHashCode:自动生成 equals(Object other) 和 hashcode() 方法,包括所有非静态变量和非 transient 的变量;
-
@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor:这三个很像,都是在自动生成该类的构造器,差别只在生成的构造器的参数不一样而已;
- @NoArgsConstructor : 生成一个没有参数的构造器
- @AllArgsConstructor : 生成一个包含所有参数的构造器
- @RequiredArgsConstructor : 生成一个包含 “特定参数” 的构造器,特定参数指的是那些有加上 final 修饰词的变量们;补充一下,如果所有的变量都是正常的,都没有用 final 修饰的话,那就会生成一个没有参数的构造器
-
@Data:整合包,只要加了 @Data 这个注解,等于同时加了以下注解 @Getter/@Setter、@ToString、@EqualsAndHashCode、@RequiredArgsConstructor;
-
@Slf4j:用作日志输出的,添加了该注释之后,就可以在代码中直接饮用log.info( ) 打印日志了;
@Slf4j @RestController public class HelloController { @RequestMapping("/hello") public String handle01(@RequestParam("name") String name){ log.info("请求进来了...."); return "Hello, Spring Boot 2!"+"你好:"+name; } }
Developer Tools
Spring Boot 提供了一组开发工具 spring-boot-devtools 可以提高开发者的工作效率,开发者可以将该模块包含在任何项目中,spring-boot-devtools 最方便的地方莫过于热部署了。
https://docs.spring.io/spring-boot/docs/2.7.14/reference/html/using.html#using.devtools
添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
注意:这里多了 一个 optional 选项,是为了防止将 devtools 依赖传递到其他模块中。当开发者将应用打包运行后,devtools 会被自动禁用
当开发者将 spring-boot-devtools
引入项目后,只要 classpath 路径下发生变化,项目就会自动重启,这极大地提高了项目的开发速度。
-
如果开发者使用 Eclipse ,那么在修改完代码并保存之后,项目将自动编译井触发重启;
-
如果开发者如果使用 IntelliJ IDEA 默认情况下,需要开发者手动编译才会触发重启。手动编译时,单击 Build -> Build Project 菜单或者按 Ctrl+F9 快捷键进行编译,编译成功后就会触发项目重启。
-
当然,使用 IntelliJ IDEA 开发者也可以配置项目自动编译,配置步骤:
-
单击 File -> settings 菜单,打开 settings 页面,在左边的菜单栏依次找到 Build,Execution,Deployment -> Compile,勾选 Build project automatically;
-
按住
Ctrl+Shift+Alt+/
快捷捷键调出 Maintenance 界面; -
选择
Registry
,在新打开的 Registry 页面中,勾选compiler.automake.allow.when.app.running
复选框。配置完成后,若开发者修改了代码则将会自动重启。高版本IDEA没有该选项,改到设置-高级设置模块;
单击 File -> settings 菜单,打开 settings 页面,找到Advanced Settings ;在Compiler下勾选 Allow auto-make to restart even if developed application is currently running。
若没有生效,请重启IDEA。
-
当类和页面中的代码改变时,项目服务器会自动重启并加载,效率较高,利于开发!