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

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

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

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

但是底層還是調用了@Component注解

在Spring Boot中還有一個注解,@RestController注解。

這個注解在底層調用了@Controller注解就是調用了@Component,同時調用了一個@ResponseBody注解,其實在我們controller層之上還有一個UI層,我們返回的數據會通過UI渲染,如果添加了@ResponseBody注解繞過UI層,直接以一種文本的形式傳輸到前端。

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

交互流程

controller層和web頁面都在我們的context(上下文)中,controller層返回數據的時候會返回到上下文context中,頁面需要數據的時候通過thymeleaf從context中獲取解析。
4 數據提交
使用的時候發(fā)現,如果我們以在請求體里面以json的格式提交數據,后臺必須使用@RequestBody來標注參數才可以取到。
使用HttpServletRequest也獲取不到 請求體里面以json格式提交的數據

演示代碼
@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";
}
運行結果
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]
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot中使用SpringSecurity進行權限控制的示例代碼
本文將詳細介紹如何在Spring Boot應用程序中使用Spring Security進行權限控制,我們將探討Spring Security的基本概念,以及如何使用Spring Security實現認證和授權,需要的朋友可以參考下2024-02-02

