Java輕量級框架技術與應用課件:Spring Boot高并發(fā)_第1頁
Java輕量級框架技術與應用課件:Spring Boot高并發(fā)_第2頁
Java輕量級框架技術與應用課件:Spring Boot高并發(fā)_第3頁
Java輕量級框架技術與應用課件:Spring Boot高并發(fā)_第4頁
Java輕量級框架技術與應用課件:Spring Boot高并發(fā)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論