SpringBoot常用注解,thymeleaf,數(shù)據(jù)提交的實(shí)現(xiàn)
前言
Spring Boot主要解決的是在微服務(wù)的架構(gòu)下簡(jiǎn)化配置(快速有效),前后端分離,快速開發(fā)。提供了快速啟動(dòng),內(nèi)嵌容器化web項(xiàng)目,開箱即用提供了默認(rèn)配置,沒有繁瑣的xml配置和冗余代碼。
本文見簡(jiǎn)單聊一下常用注解,thymeleaf和數(shù)據(jù)提交時(shí)需要注意的小問題。
1 快速配置
主要是通過了maven對(duì)包進(jìn)行管理,需要那些插件的時(shí)候直接在pom文件中引入即可。

Spring Boot Starter 中提供了 Spring, Spring MVC , Spring Boot,Tomcat等框架。

而每一個(gè)框架都有自己的配置文件,在沒有Spring Boot框架的時(shí)候,我們每次創(chuàng)建一個(gè)項(xiàng)目時(shí),都需要對(duì)這些框架的配置文件進(jìn)行一次調(diào)整。
而Spring Boot給我們提供了默認(rèn)的配置,也就是我們創(chuàng)建完成之后就可以直接啟動(dòng)。那么對(duì)于簡(jiǎn)單的運(yùn)行使用默認(rèn)配置就足夠了,對(duì)于真實(shí)的項(xiàng)目來說,默認(rèn)配置往往是不夠的。
Spring Boot提供了全局的一個(gè)配置文件來對(duì)所有的框架參數(shù)進(jìn)行配置,application.yaml或application.propertis。
快速啟動(dòng)對(duì)開發(fā)和運(yùn)維來說都減輕了負(fù)擔(dān)。
比如以往可能對(duì)于上線的項(xiàng)目,如果想要修改一下tomcat中的配置文件,可能需要跨部門去操作,還需要發(fā)郵件等,而Spring Boot中內(nèi)嵌了tomcat,這個(gè)tomcat只運(yùn)行這一個(gè)項(xiàng)目,想要怎么調(diào)整我們程序員都可以直接操作,而且不會(huì)對(duì)其它的項(xiàng)目造成影響。
同時(shí)啟動(dòng)的時(shí)候也只需要依賴服務(wù)器上的jdk,一行java -jar xxx.jar即可啟動(dòng)。對(duì)于微服務(wù)來說是非常友好的。
2 常用注解
@Component注解
是一個(gè)比較通用的注解,用來標(biāo)識(shí)這個(gè)類是一個(gè)組件,交給我們springboot容器來管理。默認(rèn)是singleton單例的。

可以用在我們的controller,service,dao層,但是為了便于區(qū)分。
出現(xiàn)了@Controller,@Service,@Dao注解。
@Controller注解

但是底層還是調(diào)用了@Component注解

在Spring Boot中還有一個(gè)注解,@RestController注解。

這個(gè)注解在底層調(diào)用了@Controller注解就是調(diào)用了@Component,同時(shí)調(diào)用了一個(gè)@ResponseBody注解,其實(shí)在我們controller層之上還有一個(gè)UI層,我們返回的數(shù)據(jù)會(huì)通過UI渲染,如果添加了@ResponseBody注解繞過UI層,直接以一種文本的形式傳輸?shù)角岸恕?/p>

3 thymeleaf
thymeleaf是渲染前端頁(yè)面的一個(gè)引擎,特別的輕量級(jí),并且在web不啟動(dòng)的情況下,也可以正確展示瀏覽頁(yè),(這個(gè)thymeleaf字面意思好像是什么樹葉,寓意這它特別的輕量級(jí)吧,具體我不記得了,但是不重要哈哈)。
用maven引入thymeleaf
<!--前端交互插件-->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>如果不生效或者出現(xiàn)其它問題解決起來比較棘手,可以刪除掉thymeleaf的pom文件
通過下面配置找到html文件
spring:
mvc:
view:
prefix: /
suffix: .html
當(dāng)我們controller層返回的是String類型的時(shí)候,就會(huì)去查找指定名稱的頁(yè)面,返回指定的頁(yè)面
@Controller
@RestController
@RequestMapping("/whx")
public class MainController {
@RequestMapping("/html")
public String openHtml(){
System.out.println("hello,word");
return "list";
}
}
假如我們添加了@Responsebody注解,就不會(huì)走ui的渲染,而是直接以文本的形式展示出來
@Controller
@RequestMapping("/whx")
public class MainController {
@RequestMapping("/html")
@ResponseBody
public String openHtml(){
System.out.println("hello,word");
return "list";
}
}

交互流程

controller層和web頁(yè)面都在我們的context(上下文)中,controller層返回?cái)?shù)據(jù)的時(shí)候會(huì)返回到上下文context中,頁(yè)面需要數(shù)據(jù)的時(shí)候通過thymeleaf從context中獲取解析。
4 數(shù)據(jù)提交
使用的時(shí)候發(fā)現(xiàn),如果我們以在請(qǐng)求體里面以json的格式提交數(shù)據(jù),后臺(tái)必須使用@RequestBody來標(biāo)注參數(shù)才可以取到。
使用HttpServletRequest也獲取不到 請(qǐng)求體里面以json格式提交的數(shù)據(jù)

演示代碼
@PostMapping("/register")
public String registerP(HttpServletRequest request,@RequestBody Account account){
System.out.println(request.getParameter("loginName"));
System.out.println(ToStringBuilder.reflectionToString(request));
System.out.println(ToStringBuilder.reflectionToString(account));
return "register";
}
運(yùn)行結(jié)果
1234 org.apache.catalina.connector.RequestFacade@12517783[request=org.apache.catalina.connector.Request@7e49b0d1] cn.wanghaixin.solution.dto.Account@3ec7283[id=<null>,loginName=1,2,3,password=1,2,3,nickName=1,2,3,age=1,location=1]
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot+Flying Saucer+Thymeleaf實(shí)現(xiàn)PDF生成的完整指南
- SpringBoot整合Thymeleaf模板引擎的實(shí)踐過程
- SpringBoot集成thymeleaf瀏覽器404的解決方案
- 使用SpringBoot集成Thymeleaf和Flying?Saucer實(shí)現(xiàn)PDF導(dǎo)出
- 在SpringBoot當(dāng)中使用Thymeleaf視圖解析器的詳細(xì)教程
- Springboot整合Thymeleaf引入公共的CSS和JS文件的方法及注意點(diǎn)
- springboot 中 thymeleaf 常用的語法完整實(shí)例
- SpringBoot3集成Thymeleaf的過程詳解
相關(guān)文章
如何利用Spring?MVC實(shí)現(xiàn)RESTful風(fēng)格
這篇文章主要介紹了如何利用Spring?MVC實(shí)現(xiàn)RESTful風(fēng)格,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Java自定義異常_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java自定義異常_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)資料,需要的朋友可以參考下2017-04-04
springboot+mybatis一對(duì)多查詢+懶加載實(shí)例
文章介紹了如何在Spring Boot和MyBatis中實(shí)現(xiàn)一對(duì)多查詢的懶加載,通過配置MyBatis的`fetchType`屬性,可以全局啟用懶加載,或者在個(gè)別需要時(shí)關(guān)閉懶加載,文章通過代碼示例和測(cè)試結(jié)果,展示了懶加載的實(shí)現(xiàn)過程2025-11-11
springboot項(xiàng)目中添加自定義日志及配置過程
這篇文章主要介紹了springboot項(xiàng)目中添加自定義日志,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
SpringBoot中使用SpringSecurity進(jìn)行權(quán)限控制的示例代碼
本文將詳細(xì)介紹如何在Spring Boot應(yīng)用程序中使用Spring Security進(jìn)行權(quán)限控制,我們將探討Spring Security的基本概念,以及如何使用Spring Security實(shí)現(xiàn)認(rèn)證和授權(quán),需要的朋友可以參考下2024-02-02

