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

下載本文檔

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

文檔簡介

項目六

SpringBoot高并發(fā)智慧信息管理系統(tǒng)的資產(chǎn)采購目錄Content1智慧信息管理系統(tǒng)的緩存配置2項目導言零在一些有高并發(fā)需求的項目中,一般也會整合性地使用關系型數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫。比如讓MySQL整合Redis,Redis以其超高的性能、完善的文檔、簡潔易懂的源碼和豐富的客戶端庫支持在開源中間件領域廣受好評。學習目標零知識目標了解Thymeleaf的概念;熟悉Thymeleaf的使用方法;了解SpringBoot的國際化配置;熟悉SpringBoot的緩存注解的使用方式;了解Redis的概念以及安裝使用方法;熟悉SpringBoot整合Redis;掌握SpringBoot的緩存管理方法;能力目標具備使用Thymeleaf模板展示數(shù)據(jù)的能力;具備為SpringBoot項目整合Redis實現(xiàn)緩存的能力;素質(zhì)目標具備精益求精、堅持不懈的精神;具有獨立解決問題的能力;具備靈活的思維和處理分析問題的能力;具有責任心。任務1:智慧信息管理系統(tǒng)的資產(chǎn)采購壹Thymeleaf簡介任務技能Thymeleaf是一種Java模板引擎,用于在Web應用程序中生成動態(tài)內(nèi)容。Thymeleaf模板的基本語法Thymeleaf可提供一種可被瀏覽器正確顯示的、格式優(yōu)雅的模板創(chuàng)建方式,可以用作靜態(tài)建模。Thymeleaf模板的常用標簽在HTML頁面上使用xmlns屬性引入Thymeleaf標簽。xmlns屬性定義一個或多個可供選擇的命名空間。Thymeleaf模板應用實例應用Thymeleaf模板,將用戶信息顯示在屏幕上,任務1-1:Thymeleaf簡介壹Thymeleaf是一種Java模板引擎,用于在Web應用程序中生成動態(tài)內(nèi)容。它是一個開源的模板引擎,可以與Spring框架集成,用于構(gòu)建可擴展的、高性能的Web應用程序。Thymeleaf的設計目標是將模板和業(yè)務邏輯分離,以便開發(fā)人員可以專注于業(yè)務邏輯的實現(xiàn)。

01XML

02XHTML

03HTML5

04純文本Thymeleaf支持多種模板解析方式:它還提供了豐富的標簽庫和表達式語言,可以方便地處理條件判斷、循環(huán)、變量賦值等常見操作。任務1-2:Thymeleaf模板的基本語法壹0102Thymeleaf可提供一種可被瀏覽器正確顯示的、格式優(yōu)雅的模板創(chuàng)建方式,可以用作靜態(tài)建模。使用Thymeleaf模板首先需要添加對應的依賴,代碼如下所示。<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>Thymeleaf會對HTML中的標簽進行嚴格的篩查,如果缺少部分標簽時就會報錯,可以通過以下依賴來去除這一驗證,添加的依賴內(nèi)容如下所示。<dependency><groupId>net.sourceforge.nekohtml</groupId><artifactId>nekohtml</artifactId><version>1.9.22</version></dependency>任務1-2:Thymeleaf模板的基本語法壹0102在全局配置文件中,可以對Thymeleaf模板的參數(shù)進行一些配置,如下所示。spring.thymeleaf.cache=true#啟動模板緩存spring.thymeleaf.encoding=UTF-8#將模板確定為UTF-8spring.thymeleaf.mode=HTML5#確定模板模式為HTML5spring.thymeleaf.prefix=classpath:/resources/templates/#指定模板頁面存放路徑spring.thymeleaf.suffix=.html#指定對應模板頁面名稱后綴任務1-3:Thymeleaf模板的常用標簽壹0102在HTML頁面上使用xmlns屬性引入Thymeleaf標簽。xmlns屬性定義一個或多個可供選擇的命名空間。使用xmlns:th=""引入Thymeleaf模板。<htmllang="en"xmlns:th="">Thymeleaf模板標簽的形式為“th:”。對于其中案例的標準表達式語法,有很多的語法表示,如表。說明表達式語法變量表達式${....}消息表達式#{....}URL表達式@{....}選擇變量表達式*{....}片段表達式~{....}任務1-4:Thymeleaf模板應用實例壹【案例】應用Thymeleaf模板,將用戶信息顯示在屏幕上,具體步驟如下所示。第一步:新建項目,在pom文件中添加Thymeleaf、Web等相關依賴,代碼如下所示。<!--Thymeleaf依賴--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.thymeleaf.extras</groupId><artifactId>thymeleaf-extras-java8time</artifactId></dependency><!--web依賴--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--MyBatis的依賴--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><!--Spring和MyBatis整合依賴--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><!--MySQL依賴--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency>任務1-4:Thymeleaf模板應用實例壹第二步:編寫配置文件application.yml,在配置文件中對數(shù)據(jù)源、頁面模版、MyBatis映射文件路徑、Web服務等進行配置,代碼如下所示。#數(shù)據(jù)源配置spring:datasource:username:rootpassword:rooturl:jdbc:mysql://:3306/mydb?useUnicode=true&characterEncoding=UTF-8driver-class-name:com.mysql.jdbc.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,代碼如下所示。publicclassUser{privateStringid;privateStringusername;privateStringrole;}第四步:定義Dao層接口,代碼如下所示。publicinterfaceUserDAO{publicList<User>getAll();}任務1-4:Thymeleaf模板應用實例壹第五步:在src/resources目錄下創(chuàng)建mapper文件夾,在mapper文件下創(chuàng)建UserMapper.xml文件,代碼如下所示。<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-////DTDMapper3.0//EN""/dtd/mybatis-3-mapper.dtd"><mappernamespace="cn.js.ccit.dao.UserDAO"><!--publicList<User>getAll();--><selectid="getAll"resultType="cn.js.ccit.vo.User">select*fromtb_user</select></mapper>第六步:定義服務層接口UserService,代碼如下所示。publicinterfaceUserService{publicList<User>getAll();}任務1-4:Thymeleaf模板應用實例壹第七步:定義服務層接口實現(xiàn)類UserServiceImpl,代碼如下所示。@Service(value="userService")publicclassUserServiceImplimplementsUserService{@Autowired(required=false)privateUserDAOuserDAO;@OverridepublicList<User>getAll(){returnuserDAO.getAll();}}第八步:定義控制類UserController,代碼如下所示。@ControllerpublicclassUserController{@AutowiredprivateUserServiceuserService;@RequestMapping("/getall")publicStringgetAllUser(ModelMapmap){

//存儲獲取到的用戶信息,保存到map中map.addAttribute("users",userService.getAll());return"show.html";}@RequestMapping("/go")publicStringgohtml(){return"Stock.html";}}任務1-4:Thymeleaf模板應用實例壹第九步:定義視圖模版,在src/resources/templates目錄下編寫index.html頁面,代碼如下所示。<!DOCTYPEhtml><!--suppressALL--><htmllang="en"xmlns:th=""><linkrel="stylesheet"href="/twitter-bootstrap/3.3.7/css/bootstrap.min.css"><scriptsrc="/jquery/2.1.1/jquery.min.js"></script><scriptsrc="/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script><head><metacharset="UTF-8"><title>顯示所有用戶</title></head><body><tableclass="table"><caption>用戶的基本信息</caption><thead><tr><th>序號</th><th>名字</th><th>角色</th></tr></thead><trth:each="user:${users}"><tdth:text="${user.id}"></td><tdth:text="${user.username}"></td><tdth:text="${user.role}"></td></tr></table></body></html>任務1-4:Thymeleaf模板應用實例壹第十步:啟動項目,在瀏覽器中輸入localhost:8081/unit42/getall,運行結(jié)果如下所示。任務2:智慧信息管理系統(tǒng)的緩存配置貳緩存簡介任務技能緩存是一種將數(shù)據(jù)或計算結(jié)果存儲在高速存儲介質(zhì)中的技術(shù),以便在后續(xù)的訪問中可以更快地獲取數(shù)據(jù)。SpringBoot的緩存注解@Cacheable注解,@CacheEvict注解,@CachePut注解@Caching注解,@CacheConfig注解Redis簡介Redis是一種開放源碼的內(nèi)存數(shù)據(jù)結(jié)構(gòu),用于數(shù)據(jù)庫、緩存和信息代理等領域。Redis安裝使用Redis支持Windows、Linux、Docker鏡像安裝等不同的安裝方式。SpringBoot整合RedisSpringBoot除了對關系型數(shù)據(jù)庫的整合支持,同樣對非關系型數(shù)據(jù)庫的整合同樣支持。任務2-1:緩存簡介貳緩存是一種將數(shù)據(jù)或計算結(jié)果存儲在高速存儲介質(zhì)中的技術(shù),以便在后續(xù)的訪問中可以更快地獲取數(shù)據(jù)。它是為了提高系統(tǒng)性能和響應速度而設計的。緩存可以存在于多個層級,包括硬件緩存、操作系統(tǒng)緩存和應用程序緩存。0102硬件緩存是CPU內(nèi)部的一種高速存儲,用于存儲最常用的數(shù)據(jù)和指令。操作系統(tǒng)緩存在操作系統(tǒng)內(nèi)部的一種存儲,用于存儲最近訪問的文件和數(shù)據(jù)塊。應用程序緩存主動使用的一種緩存機制,用于存儲經(jīng)常訪問的數(shù)據(jù)或計算結(jié)果。緩存的工作原理是當一個請求到達時,系統(tǒng)首先檢查緩存中是否存在請求的數(shù)據(jù)。如果存在,則直接從緩存中獲取數(shù)據(jù),避免了訪問慢速存儲介質(zhì)的開銷。如果緩存中不存在請求的數(shù)據(jù),則系統(tǒng)會從慢速存儲介質(zhì)中獲取數(shù)據(jù),并將其存儲在緩存中,以備后續(xù)的訪問。緩存的好處是可以大大提高系統(tǒng)的響應速度和性能。任務2-2:SpringBoot的緩存注解貳1@Cacheable注解@Cacheable是Spring框架提供的注解,用于緩存方法的返回結(jié)果。@Cacheable注解可以用于類級別和方法級別。@Cacheable注解可以配置多個緩存條件,用于指定緩存的條件。常用的緩存條件有:value:指定緩存的名稱,可以是一個字符串或字符串數(shù)組。key:指定緩存的鍵,可以是一個字符串或SpEL表達式。condition:指定緩存的條件,可以是一個SpEL表達式。只有當條件滿足時,才會進行緩存。任務2-2:SpringBoot的緩存注解貳2@CacheEvict注解@CachEvict的作用主要針對方法配置,該注解的作用是根據(jù)一定的條件對緩存進行清空,執(zhí)行順序是先進行緩存,然后再清理緩存。@CacheEvict提供的屬性大多與@Cacheable注解所提供的屬性基本相同,@CacheEvict提供了兩個額外的屬性。01allEntries屬性表示是否清空所有緩存內(nèi)容,默認值為false。如果指定為true,則方法調(diào)用后將立即清空所有緩存。02beforeInvocation屬性表示是否在方法執(zhí)行前就清空,默認值為false,如果指定為true,則在方法還沒有執(zhí)行的時候就清空緩存。任務2-2:SpringBoot的緩存注解貳3@CachePut注解@CachePut注解可以用在類或者方法上,通常用在更新數(shù)據(jù)的方法上,該注解的作用是實現(xiàn)緩存與數(shù)據(jù)庫的同步更新,執(zhí)行順序是先進行方法調(diào)用,然后再更新緩存。@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"

)})publicUsersgetById(Integerid){returnusersRepository.getOne(id);}任務2-2:SpringBoot的緩存注解貳5@CacheConfig注解@CacheConfig注解可以用在類上,@CacheConfig注解的作用是管理@Cacheable、@CachePut、@CacheEvict注解標注的公共屬性,允許的包括cacheName、KeyGenerator、CacheManager和CacheResolver,代碼如下所示。@CacheConfig(cacheNames="users")@ServicepublicclassUserServiceImplimplementsUserService{@AutowiredprivateUsersRepositoryusersRepository;@Override@CacheablepublicUsersgetById(Integerid){if(null==id||id<1){returnnull;}returnusersRepository.getOne(id);}}任務2-3:Redis簡介貳

Redis是一種開放源碼的內(nèi)存數(shù)據(jù)結(jié)構(gòu),用于數(shù)據(jù)庫、緩存和信息代理等領域。Redis提供了五種數(shù)據(jù)類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sortedset:有序集合)。Redis有以下4大優(yōu)點:04功能豐富01性能極好02擁有6種數(shù)據(jù)結(jié)構(gòu)03原子性任務2-4:Redis安裝使用貳第一步:Redis支持Windows、Linux、Docker鏡像安裝等不同的安裝方式。由于redis官網(wǎng)并沒有發(fā)布windows平臺上的程序,根據(jù)官網(wǎng)可知,要在Windows上安裝Redis,首先需要啟用WSL2(適用于Linux的Windows子系統(tǒng))。網(wǎng)址為:/tporadowski/redis/releases。任務2-4:Redis安裝使用貳第二步:將壓縮包解壓到文件中,解壓后,將文件夾重新命名為

redis,不需要任何配置,這樣Redis就下載安裝完成,如下圖。任務2-4:Redis安裝使用貳第三步:在安裝完成之后,開啟Redis服務。Redis安裝包解壓后有多個目錄文件,redis-cli.exe用于開啟客戶端工具。雙擊redis-server.exe,在終端窗口會顯示Redis的版本和默認啟動端口號6379,任務2-4:Redis安裝使用貳第四步:下載安裝Redis可視化客戶端工具。訪問官網(wǎng)下載地址:/download,下載完成之后,進行安裝,安裝成功效果如圖任務2-4:Redis安裝使用貳第五步:依次打開Redis服務,和可視化工具RedisDesktop。點擊【ConnecttoRedisServer】打開Redis連接配置,在窗口中填寫對應的連接名稱Name,連接主機Host,該項是Redis的服務地址,然后點擊【TestConnection】進行連接測試,連接成功,點擊【ok】。到此Redis開啟服務與連接配置完全結(jié)束,連接成功效果如圖。任務2-5:SpringBoot整合Redis貳第一步:添加依賴在pom文件中,添加spring-boot-starter-data-redis依賴,代碼如下所示。<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>第二步:Redis數(shù)據(jù)庫連接配置在全局配置文件perties中添加Redis數(shù)據(jù)庫連接。#Redis服務地址默認地址為spring.redis.host=#Redis服務器連接端口默認端口號為6379spring.redis.port=6379#Redis服務器連接密碼默認密碼為空spring.redis.password=任務2-5:SpringBoot整合Redis貳第三步:定義控制類Usercontroller,代碼如下所示。@RestController@ResponseBodypublicclassUsercontroller{@Autowired//自動注入UserServiceuserservice;@GetMapping("/user/{id}")//設置查詢方式publicUsergetUser(@PathVariable("id")Integerid)//通過@PathVariable獲取id的路徑{Useruser=userservice.getuser(id);returnuser;}@GetMapping("/user")publicUserupdate(Useruser){Useruser_tmp=userservice.updateUser(user);returnuser_tmp;}@GetMapping("/deluser")publicStringdeleteUser(intid){userservice.userDelete(id);return"success";}任務2-5:SpringBoot整合Redis貳第四步:定義映射文件UserMapper,編寫SQL語句,代碼如下所示。@Mapper//設置數(shù)據(jù)映射,從user表中根據(jù)id獲得用戶信息publicinterf

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論