SpringBoot开发技巧-Lombok简化开发&dev-tools(开发者工具)&Spring Initializer(项目初始化向导)
1.Lombok简化开发
为了简化JavaBean开发
步骤:
- 在pom.xml中引入依赖

- idea中搜索并安装lombok插件

原来的:
@ConfigurationProperties(prefix = "mycar")
public class Car {
private String brand;
private Integer price;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
@Override
public String toString() {
return "Car{" + "brand='" + brand + '\'' + ", price=" + price + '}';
}
}
现在的:
加上@Data就是帮我们生成已有属性(如:brand、price)的set和get方法
加上@ToString就会在我们编译的时候加上toString()方法,而不是在源代码
@ToString
@Data
@ConfigurationProperties(prefix = "mycar")
public class Car {
private String brand;
private Integer price;
}
加上@AllArgsConstructor全参构造器和@NoArgsConstructor无参构造器
原来的:
package com.company.boot.bean;
public class Pet {
private String name;
public Pet() {
}
public Pet(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Pet{" + "name='" + name + '\'' + '}';
}
}
现在的:
package com.company.boot.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@ToString
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Pet {
private String name;
}
@Sl4j,相当于注入日志类,以后再也不用再控制台system.out.println了,想要记录东西,都可以用日志,log.info("请求进来了...")
package com.company.boot.controller;
import com.company.boot.bean.Car;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
public class HelloController {
@Autowired
Car car;
@RequestMapping("/car")
public Car car() {
return car;
}
@RequestMapping("/hello")
public String handle01() {
log.info("请求进来了....");
return "Hello, Spring boot 2!";
}
}
控制台里:

总结:
@Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
@AllArgsConstructor : 注在类上,提供类的全参构造
@NoArgsConstructor : 注在类上,提供类的无参构造
@Setter : 注在属性上,提供 set 方法
@Getter : 注在属性上,提供 get 方法
@EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法
@Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log
参考:https://www.jianshu.com/p/c1ee7e4247bf
2.dev-tools(开发者工具)
idea配置Spring Boot热启动,热更新
在pom.xml中加入依赖
(1)添加spring-boot-devtools的包,true必须加上。
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> </dependencies>
(2)修改spring-boot-maven-plugin插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build>
(3)idea如果没有效果的话,那么就需要执行下面两步操作。
1、找到Setting---->Compiler设置(也可以快捷键:Ctrl+Alt+S),勾选"Build project automatically"

2、点击快捷键Ctrl+Alt+Shift+/,选择Registry,打开界面。

3、打开界面,勾选 compiler.automake.allow.when.app.running即可,如果没有这个选项,重置一下idea即可找到。
到此,热启动失效已解决,可以再重启一下idea。

项目或者页面修改以后:Ctrl+F9;
之后,前台界面发生了什么变化,或者后台更改了什么(监测变化),只需要ctrl+F9,就可以了,不需要每次重新启动
ctrl+F9的作用就是让项目重新编译一遍,只有代码有变化了,ctrl+F9才有效果,其实就是重启的过程
3.Spring Initializer(项目初始化向导)
Spring的初始化向导,帮助我们快速的创建SpringBoot的应用
帮我们把所有依赖,项目结构都搞好,主程序类也创建好了
两种初始化方式:
一、在Idea中启动
0.选择我们需要的开发场景



Group是包名
Artifact是项目名


1.自动依赖引入

2.自动创建项目结构

3.自动编写好主配置类

二、用Spring Boot给我们提供一个项目模板生成网站
1. 打开浏览器,访问:https://start.spring.io/
2. 根据页面提示,选择构建工具,开发语言,项目信息等。
SpringBoot工程在部署时,采用的是jar包的方式,内部自动依赖Tomcat容器,提供了多环境的配置。

3. 点击 Generate the project,生成项目模板,生成之后会将压缩包下载到本地。
4. 使用IDE导入项目。
5.将pom.xml加入到maven工程中
项目结构说明
如下图所示,Spring Boot的项目结构比较简单,只包含三个文件夹。
- src/main/java 放置程序开发代码
- src/main/resources 放置配置文件
- src/test/java 放置测试程序代码
而在其下,包含以下主要文件。
- DemoApplication.java 应用的启动类,包含MAIN方法,是程序的入口
- application.properties 一个空的配置文件,后续可以配置数据源等信息
- DemoApplicationTests.java 一个简单的单元测试类
- pom.xml maven的配置文件
需要将controller类,放在启动类的子包中或者同级包下

.gitignore文件:默认帮我们忽略了一些文件和目录
项目结构图:

pom.xml文件里面的内容解释:
1.指定了一个父工程:指定当前工程为SpringBoot,帮助我们声明了start依赖的版本
2.项目的元数据:包名,项目名,版本号
3.指定了properties信息:指定了java的版本为1.8
4.导入依赖:默认情况导入spring-boot-starter,spring-boot-starter-test
5.插件:spring-boot-maven-plugin
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.company</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <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> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
4.SpringBoot启动的方式(三种)
4.1 运行启动类的main方法即可运行SpringBoot工程(开发时用)

4.2 采用maven的命令去运行SpringBoot工程
mvn spring-boot:run
IDEA在Terminal端的配置
出现下面的情况:

开始配置:
(1)IDEA工具,是自带Maven插件的,settings看一下maven目录

(2)需要把maven配置到环境变量中 D:/Program Files/JetBrains/IntelliJ IDEA 2020.2/plugins/maven/lib/maven3
(前提是需要给系统先配置好java环境变量)

(3)编辑用户变量Path;增加一条: ;%MAVEN_HOME%\bin

(4)重启IDEA工具

(5)还是不行的话:
在Path中添加:%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;(视情况而定,有时候直接进行启动cmd)
启动cmd校验maven配置情况:echo %MAVEN_HOME%, mvn -v

(6)上面步骤说明maven配置成功,但是如果在IDEA端Teminal还不能识别,选择IDEA运行程序右键,默认以管理员身份运行

这样IDEA Terminal中就可以了

4.3 采用jar包的方式运行(部署时用)
SpringBoot工程部署时采用jar包的方式
将SpringBoot工程打包

如果出现下面的问题

需要在pom.xml中加入
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> </plugin>
在target中找到jar包

把jar包放到桌面,shift+鼠标右键,


这样就可以启动了
参考:https://www.cnblogs.com/xifengxiaoma/p/11019240.html

浙公网安备 33010602011771号