Java SpringBoot開(kāi)發(fā)小技巧詳解
一、SpringBoot開(kāi)發(fā)小技巧
1.1 Lombok
作用:在程序編譯的時(shí)候,自動(dòng)幫我們生成setter和getter方法以及我們的toString方法和我們的全參和無(wú)參構(gòu)造器等等。
那么,怎么用呢?很簡(jiǎn)單,用下邊這四個(gè)注解就行了:
1、@Data:自動(dòng)生成setter和getter方法。
2、@ToString:自動(dòng)生成toString方法。
3、@AllArgsConstructor:自動(dòng)生成全參構(gòu)造器
4、@NoArgsConstructor:自動(dòng)生成無(wú)參構(gòu)造器
5、@EqualsAndHashCode:自動(dòng)生成EqualsAndHashCode方法
6、@Slf4j:開(kāi)啟我們的日志記錄器
使用Lombok,首先當(dāng)然要引入他的依賴,這個(gè)在SpringBoot也裝配好了,所以我們不用寫他的版本號(hào)。
<!--lombok依賴-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
然后在IDEA的settings中下載Lombok的插件。(下載完記得重啟一下IDEA,讓他生效)

使用這個(gè)插件后,我們以后開(kāi)發(fā)的時(shí)候的那些Bean,我們只需要在上面添加如下注解就可以生成對(duì)應(yīng)的方法了:
package com.example.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data //setter和getter方法
@ToString //toString方法
@AllArgsConstructor //有參構(gòu)造器
@NoArgsConstructor //無(wú)參構(gòu)造器
@EqualsAndHashCode //EqualsAndHashCode方法
public class User {
private Integer id;
private String username;
private String password;
}
然后我們給控制器也寫一個(gè)@Slf4j注釋
package com.example.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
//@RestController可以理解成是Controller加ResponseBody
@RestController
@Slf4j
public class HelloController {
@RequestMapping("/hello")
public String toHello(@RequestParam("name") String name){
log.info("/hello被人訪問(wèn)啦!");
return "Hello,World!"+name;
}
}
在主程序中寫上:
package com.example.boot;
import com.example.bean.User;
import com.example.config.MyConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
/**
* 主程序類
* @SpringBootApplication 告訴 SpringBoot這是一個(gè)SpringBoot應(yīng)用
*/
@SpringBootApplication(scanBasePackages = "com.example")
public class MainApplication {
public static void main(String[] args) {
//固定寫法
ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);
MyConfig myConfig = run.getBean(MyConfig.class);
//通過(guò)myConfig的方法獲取Bean
User user = myConfig.user();
// User user1 = myConfig.user();
//通過(guò)run獲取Bean
User user2 = run.getBean("user",User.class);
System.out.println(user);
System.out.println(user2);
}
}
運(yùn)行我們的主程序,我們來(lái)測(cè)試一下,首先Bean的創(chuàng)建沒(méi)問(wèn)題,而且他的toString方法也沒(méi)問(wèn)題。

登錄http://localhost:8888/hello?name=哈哈哈

控制臺(tái)輸出也沒(méi)問(wèn)題。

1.2 dev-tools
作用:以前開(kāi)發(fā)頁(yè)面啥的,老要重啟一下主程序或者重啟一下Tomcat服務(wù)器,有了他就方便多啦。我們只需要按Ctrl+F9(編譯一下),就可以讓他實(shí)時(shí)生效。(第一次使用記得在成功導(dǎo)入依賴后,先重啟一次主程序)
先添加依賴:
<!--dev-tools依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
然后我們來(lái)試一下,我們把之前設(shè)置端口號(hào)為8888的那一段刪掉,讓他變回默認(rèn)的8080。按Ctrl+F9,很快就編譯完成了,然后我們此時(shí)登錄8080端口號(hào)成功。登錄8888端口號(hào)就不行了。開(kāi)發(fā)網(wǎng)頁(yè)啥的時(shí)候也是一樣,改完代碼,直接編譯,然后回去網(wǎng)站刷新一下即可。

1.3 Spring Initializr
作用:初始化我們的SpringBoot工程。
在IDEA中,我們新建我們的項(xiàng)目,可以選擇Spring Initializr,然后配置我們的工程名、路徑等等信息,大致如下:


完成后,他就會(huì)自動(dòng)幫我們導(dǎo)入我們的依賴


并且?guī)臀覀冊(cè)O(shè)計(jì)好我們的項(xiàng)目結(jié)構(gòu):

主程序類也幫我們寫好了默認(rèn)的語(yǔ)句。

如此,開(kāi)發(fā)者基本上就只需要寫自己的那些dao、service、controller和bean一系列的業(yè)務(wù)邏輯的東西就可以了。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
springboot打成jar后無(wú)法讀取根路徑和文件的解決
這篇文章主要介紹了springboot打成jar后無(wú)法讀取根路徑和文件的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringBoot2.x 整合 thumbnailator 圖片處理的示例代碼
這篇文章主要介紹了SpringBoot2.x 之整合 thumbnailator 圖片處理,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
Java?SpringTask定時(shí)自動(dòng)化處理方法
這篇文章主要介紹了Java?SpringTask定時(shí)自動(dòng)化處理,通過(guò)自動(dòng)化,不僅可以提高工作效率和準(zhǔn)確性,還可以釋放人力資源以專注于更高價(jià)值的工作,需要的朋友可以參考下2024-08-08
深入理解Java責(zé)任鏈模式實(shí)現(xiàn)靈活的請(qǐng)求處理流程
本文詳細(xì)介紹了Java中的責(zé)任鏈模式,幫助您理解其工作原理,以及如何在代碼中實(shí)現(xiàn)。該模式可以將請(qǐng)求沿著處理鏈路傳遞,實(shí)現(xiàn)靈活的請(qǐng)求處理流程。通過(guò)本文的學(xué)習(xí),您將獲得在Java應(yīng)用程序中使用責(zé)任鏈模式的知識(shí)和技能2023-04-04

