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

posted @ 2021-02-01 17:06  GumpYan  阅读(304)  评论(0)    收藏  举报