spring boot 日志/頁面處理、實(shí)體類構(gòu)建、后臺管理功能的實(shí)現(xiàn)
一、配置文件的編寫
1.配置文件
為方便我們的開發(fā),我們需要構(gòu)建三個環(huán)境下的配置文件分別是通用環(huán)境、開發(fā)環(huán)境和生產(chǎn)環(huán)境下的yml格式配置文件
并且在開發(fā)環(huán)境配置中配置好我們的數(shù)據(jù)庫和日志
2.導(dǎo)入依賴
(這個是在初始化spring boot項(xiàng)目時就自動導(dǎo)入了)
需要用到的有JPA、thymeleaf、devtools、aop等
二、日志框架處理
(這個可以自己配置也可以不配,根據(jù)自己的使用習(xí)慣,我是跟著視頻的QAQ,不配置的話用默認(rèn)的也可以)
1.默認(rèn)配置
2.個性配置
3.自動生成的日志文件
三、頁面處理
1. 控制器
通過控制器來處理命令,使用注解@GetMapping或者@PostMapping等進(jìn)行處理
可以通過一系列控制器實(shí)現(xiàn)各鐘功能
控制器示例:
貌似Spring boot默認(rèn)訪問頁面就是index
2.配置錯誤友好頁面
4xX 5XX分別是服務(wù)端和客戶端有錯誤時會默認(rèn)跳轉(zhuǎn)的頁面
這里有個坑?。?br />
注意使用thymeleaf的html如果使用了th:fragment
和th:replace
抽取公共部分的話,可能會出現(xiàn)直接打開靜態(tài)模板時會丟失樣式的問題
要注意我們在抽取公共部分時,原h(huán)tml頁面的被取代部分最好不要清空,同時要注意css樣式部分的路徑,并且要保留在項(xiàng)目中
又一個坑!:idea啟動頁面產(chǎn)生亂碼
這是因?yàn)閕dea啟動頁面時的編碼不一樣,兼容性的問題,只需要加入下面這段代碼到head里就解決了
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
四、實(shí)體類構(gòu)建
使用JPA技術(shù)
JPA是Java Persistence API的簡稱,中文名Java持久層API
是JDK5.0注解或XML描述對象-關(guān)系表的映射關(guān)系,并將運(yùn)行期的實(shí)體對象持久化到數(shù)據(jù)庫中
1.創(chuàng)建持久層實(shí)體類Entity
創(chuàng)建實(shí)體類
使用注解@Entity:表明實(shí)體類
必須與@Id注解 結(jié)合使用
否則 No identifier specified for entity: name 屬性
(可選)實(shí)體名稱。 缺省為實(shí)體類的非限定名稱。
該名稱用于引用查詢中的實(shí)體。
該名稱不能是Java持久性查詢語言中的保留字面值。
不與@Table結(jié)合的話 表名 默認(rèn)為 SnakeCaseStrategy(命名策略 )為表名
若使用 name屬性 且沒有與@Table結(jié)合 則表名為 name值的SnakeCaseStrategy(命名策略 )
例如:
@Entity
public class UserEntity{…} 表名 user_entity
@Entity(name=“UE”)
public class UserEntity{…} 表名 ue
@Entity(name=“UsEntity”)
public class UserEntity{…} 表名 us_entity
@Table(name = 數(shù)據(jù)庫名)操作數(shù)據(jù)庫
運(yùn)行啟動類后會自動創(chuàng)建數(shù)據(jù)庫表單
2.注解的使用
@ID
@GeneratedValue
@XX TO XX
關(guān)系
@ID:
@ID 標(biāo)注用于聲明一個實(shí)體類的屬性映射為數(shù)據(jù)庫的主鍵列。該屬性通常置于屬性聲明語句之前,可與聲明語句同行,也可寫在單獨(dú)行上。
@ID標(biāo)注也可置于屬性的getter
方法之前。
@GeneratedValue:
@GeneratedValue 用于標(biāo)注主鍵的生成策略,通過strategy 屬性指定。
默認(rèn)情況下,JPA 自動選擇一個最適合底層數(shù)據(jù)庫的主鍵生成策略:****SqlServer
對應(yīng)identity
,MySQL 對應(yīng) auto increment
。
在javax.persistence.GenerationType
中定義了以下幾種可供選擇的策略:
IDENTITY:采用數(shù)據(jù)庫ID自增長的方式來自增主鍵字段,Oracle 不支持這種方式;AUTO: JPA自動選擇合適的策略,是默認(rèn)選項(xiàng);SEQUENCE:通過序列產(chǎn)生主鍵,通過@SequenceGenerator 注解指定序列名,MySql不支持這種方式TABLE:通過表產(chǎn)生主鍵,框架借由表模擬序列產(chǎn)生主鍵,使用該策略可以使應(yīng)用更易于數(shù)據(jù)庫移植。
ManyToMany、OneToMany等是各實(shí)體類之間對應(yīng)的關(guān)系,根據(jù)實(shí)際關(guān)系注解…
五、后臺管理
有了實(shí)體類和數(shù)據(jù)庫表單之后當(dāng)然就是要將它們注冊到我們的容器中,實(shí)現(xiàn)增刪改查等操作,在web頁面上實(shí)現(xiàn)后臺和前端的響應(yīng)!
1.配置持久層組件
@Repository注解式持久層組件,用于標(biāo)注數(shù)據(jù)訪問組件,即DAO組件
DAO層
先定義一個接口
2.標(biāo)注業(yè)務(wù)層組件
@Service用于標(biāo)注業(yè)務(wù)層組件
從數(shù)據(jù)庫中取用戶名及密碼
3.編寫控制器
根據(jù)自己的需求編寫控制器的內(nèi)容
4.例
如在管理員登陸頁面中
@Controller
用于標(biāo)記在一個類上,使用它標(biāo)記的類就是一個SpringMvc
Controller
對象,分發(fā)處理器會掃描使用該注解的類的方法,并檢測該方法是否使用了@RequestMapping
注解。
@Controller只是定義了一個控制器類,而使用@RequestMapping
注解的方法才是處理請求的處理器
到此這篇關(guān)于spring boot 日志/頁面處理、實(shí)體類構(gòu)建、后臺管理功能的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)spring boot日志頁面處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
2024版本IDEA創(chuàng)建Servlet模板的圖文教程
新版IDEA?2024.1.4中,用戶需要自行創(chuàng)建Servlet模板以解決Web項(xiàng)目無法通過右鍵創(chuàng)建Servlet的問題,本文詳細(xì)介紹了添加ServletAnnotatedClass.java模板的步驟,幫助用戶快速配置并使用新的Servlet模板,需要的朋友可以參考下2024-10-10Java中SPI機(jī)制的實(shí)現(xiàn)詳解
SPI(Service?Provider?Interface),是?JDK?內(nèi)置的一種服務(wù)提供發(fā)現(xiàn)機(jī)制,可以用來啟用框架擴(kuò)展和替換組件,下面我們就來看看Java中SPI機(jī)制的具體實(shí)現(xiàn)2024-01-01Java并發(fā)編程之synchronized底層實(shí)現(xiàn)原理分析
這篇文章主要介紹了Java并發(fā)編程之synchronized底層實(shí)現(xiàn)原理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02java 實(shí)現(xiàn)微信服務(wù)器下載圖片到自己服務(wù)器
這篇文章主要介紹了 java 實(shí)現(xiàn)微信服務(wù)器下載圖片到自己服務(wù)器的相關(guān)資料,需要的朋友可以參考下2017-05-05java面向?qū)ο笤O(shè)計原則之接口隔離原則示例詳解
這篇文章主要為大家介紹了java面向?qū)ο笤O(shè)計原則之接口隔離原則的示例詳解,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-10-10