版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Spring
Boot高并發(fā)Content智慧信息管理系統(tǒng)的資產(chǎn)采購智慧信息管理系統(tǒng)的緩存配置目
錄在一些有高并發(fā)需求的項目中,
一般也會整合性地使用關系型數(shù)據(jù)庫和NoSQL
數(shù)據(jù)庫。比如讓MySQL
整合Redis,Redis
以其超高的性能、完善的文檔、簡潔易懂的源碼和豐富的客戶端庫支持在開源中間件領域廣受好評。零
項目導言能力目標具備使用Thymeleaf
模
板展示數(shù)據(jù)的能力;具備為Spring
Boot項
目整合Redis實現(xiàn)緩存
的能力
;>
了解Thymeleaf
的概念;>熟
悉Thymeleaf
的使用方法了
解SpringBoot的國際化
配
置
;熟悉SpringBoot的緩存注
解的使用方式;了
解Redis的概念以及安裝
使用方法;熟悉SpringBoot整合Redis>
掌握Spring
Boot的緩存管
理方法;具備精益求精、
堅持不懈的精神;>具有獨立解決問題的能
力
;>具備靈活的思維和處理分析問題的能力;具有責任心。素質目標知識目標零
學習目標Thymeleaf模板的基本語法Thymeleaf
可提供一種可被瀏覽器正確顯示的、格式優(yōu)雅的模板創(chuàng)建方式,可以用作靜態(tài)建模。Thymeleaf
模板的常用標簽在HTML
頁面上使用xmlns
屬性引入Thymeleaf
標簽。xmlns
屬性定義一個或多個可供選擇的命名空間。Thymeleaf模板應用實例應用Thymeleaf
模板,將用戶信息顯示在屏幕上,任務1:智慧信息管理系統(tǒng)的資產(chǎn)采購Thymeleaf簡介Thymeleaf
是一種Java模板引擎,用于在Web
應用程序中生成
動態(tài)內容。任務
技能壹壹任務1-1:Thymeleaf簡介Thymeleaf是一種Java模板引擎,用于在Web應用程序中生成動態(tài)內容。它是一個開源的模板引擎,可以與Spring框架集成,用于構建可擴展的、高性能的Web
應用程序。Thymeleaf的設計目標是將模板和業(yè)務邏輯分離,以便開發(fā)人員可以專注于業(yè)務邏輯的實現(xiàn)。Thymeleaf支持多種模板解析方式:XML
XHTML
HTML5
純文本它還提供了豐富的標簽庫和表達式語言,可以方便地處理條件判斷、循環(huán)、變量賦值等常見操作。壹任務1-2:Thymeleaf模板的基本語法Thymeleaf
可提供一種可被瀏覽器正確顯示的、格式優(yōu)雅的模板創(chuàng)建方式,可以用作靜態(tài)建模。使
用Thymeleaf
模板首先需要添加對應的依賴,代碼如下所示。<dependency><groupld>t</groupld><artifactld>spring-boot-starter-thymeleaf</artifactld></dependency>Thymeleaf
會對HTML
中的標簽進行嚴格的篩查,如果缺少部分標簽時就會報錯,可以通過以下依賴來去除這一驗證,添加的依賴內容如下所示。<dependency><groupld>ohtml</groupld><artifactld>nekohtml</artifactld><version>1.9.22</version>
</dependency>壹任務1-2:Thymeleaf模板的基本語法在全局配置文件中,可以對Thymeleaf模板的參數(shù)進行一些配置,如下所示。sprhe=true
#啟動模板緩存sproding=UTF-8
#將模板確定為UTF-8spre=HTML5
#確定模板模式為HTML5sprfix=classpath:/resources/templates/#指定模板頁面存放路徑sprfix=.html
#指定對應模板頁面名稱后綴01
02壹任務1-3:Thymeleaf模板的常用標簽在HTML
頁面上使用xmlns
屬性引入Thymeleaf標簽。xmlns
屬性定義一個或多個可供選擇的命名空間。使
用xmlns:th="“引入Thymeleaf
模板。說明表達式語法變量表達式${....}消息表達式#{....}URL表達式@{…}選擇變量表達式*{....}片段表達式~.…}Thymeleaf
模板標簽的形式為"th:"。對于其中案例的標準表達式語法,有很多的語法表示,如表。<html
lang="en"xmlns:th=""><!--Thymeleaf依賴--><dependency><groupld>t</groupld><artifactld>spring-boot-starter-thymeleaf</artifactld></dependency><dependency><groupld>ras</groupld><artifactld>thymeleaf-extras-java8time</artifactld></dependency><!--web依賴--><dependency><groupld>t</groupld><artifactld>spring-boot-starter-web</artifactld>
</dependency><!--MyBatis的依賴--><dependency><groupld>org.mybatis</groupld><artifactld>mybatis</artifactld><version>3.5.2</version></dependency><!--Spring和MyBatis整合依賴--><dependency><groupld>ing.boot</groupld><artifactld>mybatis-spring-boot-starter</artifactld><version>1.3.2</version></dependency><!--MySQL依賴--><dependency><groupld>mysql</groupld><artifactld>mysql-connector-java</artifactld><version>5.1.47</version></dependency>壹任務1-4:Thymeleaf模板應用實例【案例】應用Thymeleaf模板,將用戶信息顯示在屏幕上,具體步驟如下所示。第一步:新建項目,在pom
文件中添加Thymeleaf、Web等相關依賴,代碼如下所示。壹任務1-4:Thymeleaf模板應用實例第二步:編寫配置文件application.yml,在配置文件中對數(shù)據(jù)源、頁面模版、MyBatis映射文件路徑、Web
服務等進行配置,代碼如下所示。#數(shù)據(jù)源配置spring:datasource:username:rootpassword:rooturl:jdbc:driver-class-name:c.Driver#Thymeleaf模板配置thymeleaf:cache:falseencoding:UTF-8servlet:content-type:text/htmlmybatis:mapper-locations:classpath:mapper/*.xml#服務器基本配置server:port:8081servlet:context-path:/unit42壹
任務1-4:Thymeleaf模板應用實例第三步:創(chuàng)建實體類User,代碼如下所示。public
class
User{private
String
id;private
String
username;private
String
role;}第四步:定義Dao層接口,代碼如下所示。public
interface
UserDAO{public
List<User>getAll();<?xml
version="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-////DTDMapper3.0//EN""/dtd/mybatis-3-mapper.dtd">
<mapper
namespace="cn..UserDAO"><!-public
List<User>getAll();--><select
id="getAll"resultType="cn..User">select*from
tb_user</select></mapper>壹
任務1-4:Thymeleaf模板應用實例第五步:在src/resources目錄下創(chuàng)建mapper文件夾,在mapper文件下創(chuàng)建UserMapper.xml
文件,代碼如下所示。第六步:定義服務層接口UserService,代碼如下所示。public
interface
UserService
{public
List<User>getAll();@Service(value="userService")publicclass
UserServicelmplimplements
UserService{@Autowired(required
=false)private
UserDAOuserDAO;@Overridepublic
List<User>getAIl(){return
userDAO.getAll();@Controllerpublic
class
UserController{@Autowiredprivate
UserServiceuserService;@RequestMapping("/getall")public
String
getAllUser(ModelMap
map){//存儲獲取到的用戶信息,保存到map中map.addAttribute("users",userService.getAlI();壹
任務1-4:Thymeleaf模板應用實例第七步:定義服務層接口實現(xiàn)類UserServiceImpl,
代碼如下所示。return
"show.html";@RequestMapping("/go")public
String
gohtml(){return"Stock.html";第八步:定義控制類UserController,代碼如下所示。<!DOCTYPE
html><!--suppress
ALL--><html
lang="en"xmlns:th=""><linkrel="stylesheet"href="h/twitter-bootstrap/3.3.7/css/bootst"><script
src="/jquery/2.1.1/jqu"></script><script
src="/twitter-bootstrap/3.3.7/js/bootst"></script>
<head><meta
charset="UTF-8"><title>顯示所有用戶</title></head><body><table
class="table"><caption>用戶的基本信息</caption><thead><tr><th>序號</th><th>名字</th><th>角色</th></tr></thead><tr
th:each="user:${users}"><td
th:text="${user.id}"></td><td
th:text="${user.username}"></td><td
th:text="${user.role}"></td></tr></table></body></html>壹
任務1-4:Thymeleaf模板應用實例第九步:定義視圖模版,在src/resources/templates
目錄下編寫index.html
頁面,代碼如下所示?!?/p>
顯示所有用戶
×+□←
localhost:8081/unit.A
☆
體
中錯誤用戶的基本信息序號名字角色1張三admin2張曉明teacher壹
任務1-4:Thymeleaf模板應用實例第十步:啟動項目,在瀏覽器中輸入localhost:8081/unit42/getall,運行結果如下所示。任務2:智慧信息管理系統(tǒng)的緩存配置緩存簡介緩存是一種將數(shù)據(jù)或計算結果存儲在高速存儲介質中的技術,以
便在后續(xù)的訪問中可以更快地獲取數(shù)據(jù)。Spring
Boot的緩存注解@Cacheable注解,@CacheEvict
注
解
,
@CachePut
注解@Caching注解,@CacheConfig
注解任務
Redis簡介技能Redis安裝使用Redis支持Windows、Linux、Docker鏡像安裝等不同的安裝方
式。Spring
Boot整合RedisSpring
Boot除了對關系型數(shù)據(jù)庫的整合支持,同樣對非關系型
數(shù)據(jù)庫的整合同樣支持。Redis
是一種開放源碼的內存數(shù)據(jù)結構,用于數(shù)據(jù)庫、緩存和信息代理等領域。貳貳
任務2-1:緩存簡介緩存是一種將數(shù)據(jù)或計算結果存儲在高速存儲介質中的技術,以便在后續(xù)的訪問中可以更快地獲取數(shù)據(jù)。它是為了提高系統(tǒng)性能和響應速度而設計的。緩存可以存在于多個層級,包括硬件緩存、操作系統(tǒng)緩存和應用程序緩存。硬件緩存
●是CPU
內部的一種高速存儲,用于存儲最常用的數(shù)據(jù)和指令。操作系統(tǒng)緩存●在操作系統(tǒng)內部的一種存儲,用于存儲最近訪問的文件和數(shù)據(jù)塊。應用程序緩存·主動使用的一種緩存機制,用于存儲經(jīng)常訪問的數(shù)據(jù)或計算結果。緩存的工作原理是當一個請求到達時,系統(tǒng)首先檢查緩存中是否存在請求的數(shù)據(jù)。如果存在,則直接從緩存中獲取數(shù)據(jù),避免了訪問慢速存儲介質的開銷。如果緩存中不存在請求的數(shù)據(jù),則系統(tǒng)會從慢速存儲介質中獲取數(shù)據(jù),并將其存儲在緩存中,以備后續(xù)的訪問。緩存的好處是可以大大提高系統(tǒng)的響應速度和性能。01
02貳
任務2-2:SpringBoot的緩存注解①@Cacheable注
解@Cacheable是
Spring框架提供的注解,用于緩存方法的返回結果。@Cacheable注解可以用于類級別和方法級別。@Cacheable注解可以配置多個緩存條件,用于指定緩存的條件。常用的緩存條件有:value:
指定緩存的名稱,可以是一個字符串或字符串數(shù)組。key:
指定緩存的鍵,可以是一個字符串或
SpEL表達式。condition:
指定緩存的條件,可以是一個
SpEL
表達式。只有當條件滿足時,
才會進行緩存。貳
任務2-2:SpringBoot的緩存注解2@CacheEvict注
解@CachEvict
的作用主要針對方法配置,該注解的作用是根據(jù)一定的條件對緩存進行清空,執(zhí)行順序是先進行緩存,然后再清理緩存。@CacheEvict
提供的屬性大多與@Cacheable
注解所提供的屬性基本相同,@CacheEvict提供了兩個額外的屬性。allEntries
屬性表示是否清空所有緩存內容,默認值為false
。如果指定為true,
則方法調用
后將立即清空所有緩存。beforelnvocation屬性表示是否在方法執(zhí)行前就清空,默認值為false,如果指定為true,
則
在方法還沒有執(zhí)行的時候就清空緩存。貳任務2-2:Spring
Boot的緩存注解3
@CachePut注解@CachePut
注解可以用在類或者方法上,通常用在更新數(shù)據(jù)的方法上,該注解的作用是實現(xiàn)緩
存與數(shù)據(jù)庫的同步更新,執(zhí)行順序是先進行方法調用,然后再更新緩存。@CachePut提供的屬性
與
@Cacheable注解提供的屬性完全相同。4
@Caching
注解當進行復雜的數(shù)據(jù)緩存時,可以使用@Caching
注解應用在類或者方法上。@Caching
注解有三
個屬性,cacheable
、put
、evict,這三個屬性相當于@Cacheable
、@CachePut注解、@CacheEvict注解,代碼如下所示。@Caching(cacheable={@Cacheable(value="users",key="#id")},put={@CachePut(value="users",key="#result.id",condition="#result!=null")}public
Users
getByld(Integer
id){return
usersRepository.getOne(id);@CacheConfig(cacheNames="users")@Servicepublic
classUserServicelmpl
implementsUserService{@Autowiredprivate
UsersRepository
usersRepository;@Override@Cacheablepublic
Users
getByld(Integer
id){if(null==id||id<1){return
null;}return
usersRepository.getOne(id);貳任務2-2:Spring
Boot的緩存注解5
@CacheConfig
注解@CacheConfig
注解可以用在類上,@CacheConfig
注解的作用是管理@Cacheable、@CachePut、@CacheEvict
注解標注的公共屬性,允許的包括cacheName、KeyGenerator、
CacheManager
和CacheResolver,代碼如下所示。貳任務2-3:Redis簡介Redis是一種開放源碼的內存數(shù)據(jù)結構,用于數(shù)據(jù)庫、緩存和信息代理等領域。Redis提供了五種數(shù)據(jù)類型:string(字
符串
),hash(哈希),list(
列
表
)
,set(
集
合
)
及zset(sortedset:有序集合)。Redis有以下4大優(yōu)點:貳
任務2-4:Redis安裝使用第
一
步:Redis
支持Windows、Linux、Docker
鏡像安裝等不同的安裝方式。由于redis官網(wǎng)并沒有發(fā)布windows平臺上的程序,根據(jù)官網(wǎng)可知,要在Windows
上安裝
Redis,首先需要啟用WSL2(適用于Linux
的
Windows
子系統(tǒng))。網(wǎng)址為:。Feb
17,2022
Redis
for
Windows
tporadowskiThisisabugfix/maintenance
release
that
works
around
issue
#130relatedtousageof
modules
during
asynchronous
saveoperations.fyouarenotusing
modulesthereis
no
needtoupgrade.vAssets
4Redis-x64-.msi6.79MBFeb17,2022Redis-x64-5.0.14.1.zip12MBFeb17,2022aSource
code
(zip)Feb17,2022aSoure
code
targz)Feb17,2022https///tporadowskiredis/releases404
people
reactedVin
dows(C:)>用戶
dz>桌面
java>Redis名稱□00-RELEASENOTESEventLog.dllREADME.txtredis.windows.confredis.windows-service.confredis-benchmark.exe□
redis-benchmark.pdbredis-check-aof.exe□
redis-check-aof.pdbredis-check-rdbexe□
redis-check-rdb.pdbredis-cli.exe□redis-cli.pdbredis-server.exe□
redis-server.pdbRELEASENOTES.txt第二步:將壓縮包解壓到文件中,解壓后,將文件夾重新命名為redis,不需要任何配置,這樣Redis就下載安裝完成,如下圖。貳任務2-4:Redis安裝使用C:\Users\dz\Desktopyjava\Redis\redis-server.exe
□
×[806007Aug11:20:31.907#0000000000000Redis
is
starting0000000000[8060]
07Aug11:20:31.907#Redis
version=,bits=64,commit=ec77f72d,modified=0,pid=8060,juststarted[8060]07Aug
11:20:31.909#Warning:noconfigfile
specified,using
the
default
config.In
order
to
specify
a
config
file
use
c:\users\dz\desktop\java\redis\redis-server.exe/path/to/redis.confRedis
5.0.14.1(ec77E72d/0)64
bitRunninginstandalone
modePort:6379PID:8060http://redis.io[8060]07Aug11:20:31.913#Server
initialized[8060]07
Aug
11:20:31.913*Ready
to
accept
connections任務2-4:Redis安裝使用第三步:在安裝完成之后,開啟Redis服務。Redis安裝包解壓后有多個目錄文件,redis-cli.exe用于開啟客戶端工具。雙擊redis-server.exe,在終端窗口會顯示Redis的版本和默認啟動端口號6379,貳第四步:下載安裝Redis可視化客戶端工具。訪問官網(wǎng)下載地址:,下載完成之后,進行安裝,安裝成功效果如圖RedisDesktopManagerSetupCompleting
Redis
Desktop
ManagerSetupRedis
Desktop
Manager
has
been
installed
on
yourcomputer.Click
Finish
to
dose
Setup.?Run
Redis
Desktop
Manager貳任務2-4:Redis安裝使用Cancel貳
任務2-4:Redis安裝使用第五步:依次打開Redis服務,和可視化工具Redis
Desktop。點擊【ConnecttoRedisServer】打開Redis連接配置,在窗口中填寫對應的連接名稱Name,連接主機Host,該項是Redis的服務地址,然后點擊【Test
Connection】進行連接測試,連接成功,點擊
【ok】。到此Redis開啟服務與連接配置完全結束,連接成功效果如圖。Redis
Desktop
Managerv.84Name
redisI
TestCornection2023-08-071:26:59:Initap108ktop
ManagerconnectionSSL
SSH…#Redis服務地址默認地址為sprt=#Redis服務器連接端口默認端口號為6379sprt=6379#Redis服務器連接密碼默認密碼為空sprsword=貳
任務2-5:SpringBoot整合Redis第一步:添加依賴在pom
文
件
中
,
添
加spring-boot-starter-data-redis
依賴,代碼如下所示。<dependency><groupld>t</groupld><artifactld>spring-boot-starter-data-redis</artifactld>
</dependency>第
二步
:Redis
數(shù)據(jù)庫連接配置在全局配置文件application.properties
中
添
加Redis
數(shù)據(jù)庫連接。@RestController@ResponseBodypublic
class
Usercontroller{@Autowired//
自
動
注
入UserService
userservice;@GetMapping("/user/{id}")//
設置查詢方式public
User
getUser(@PathVariable("id")Integer
id)//通過@PathVariable
獲
取id
的
路
徑User
user=userservice.getuser(id);return
user;@GetMapping("/user")public
User
update(User
user)Useruser_tmp=userservice.updateUser(user);return
user_tmp;@GetMapping("/deluser")publicString
deleteUser(int
id)userservice.userDelete(id);return
"success";貳
任務2-5:SpringBoot整合Redis第三步:定義控制類Usercontroller,代碼如下所示。貳
任務2-5:SpringBoot整合Redis第四步:定義映射文件UserMapper,
編
寫SQL語句,代碼如下所示。@Mapper//設置數(shù)據(jù)映射,從user
表中根據(jù)id
獲得用戶信息publicinterface
UserMapper{@Select("SELECT*FROM
user
WHERE
id=#{id}")public
User
getUserbyid(int
id);@Update("UPDATE
user
SET
name=#{name}WHERE
id=#{id}")public
void
UpdateUser(User
user);@Delete("DELETE
FROM
user
WHERE
id=#{id}")publicvoid
deleteuser(Integer
id);UserService{@AutowiredUserMapper
usermapper;//聲明
一
個usermapper對象@Cacheable
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內科學期末考試及答案
- 國外學醫(yī)回國就業(yè)前景
- 2025年高職(木雕設計)木雕文創(chuàng)產(chǎn)品設計綜合測試題及答案
- 2025年高職(臨床醫(yī)學)外科學綜合測試試題及答案
- 吉林省長春市第一五三中學2025-2026學年九年級(上)期末化學試卷(含答案)
- 2024-2025學年河南省南陽市六校聯(lián)考高二(上)期末化學試卷(含答案)
- 員工小滿活動策劃方案(3篇)
- 打樁冬季施工方案(3篇)
- 拆裝潢施工方案(3篇)
- 飲品公司活動策劃方案(3篇)
- 血液凈化中心(透析室)年度述職報告
- 教科版(2024)二年級科學上冊期末綜合質量調研卷(含答案)
- 2025年合肥安徽潛晟城市運營管理有限公司公開招聘工作人員考試題庫必考題
- 新生兒氣道管理臨床實踐指南(2025版)
- 酒吧消防安培訓
- 養(yǎng)老院消防培訓方案2025年課件
- Smaart7產(chǎn)品使用說明手冊
- 包裝班組年終總結
- 瓷磚工程驗收課程
- 2025 小學二年級數(shù)學上冊乘法口訣對口令練習課件
- 專升本旅游管理專業(yè)2025年旅游學概論試卷(含答案)
評論
0/150
提交評論