淘淘商城 - day10 - 课堂笔记
更新时间:2023-09-20 21:12:01 阅读量: 医药卫生 文档下载
- 淘淘商城推荐度:
- 相关推荐
1. 今日大纲
1、 Dubbo入门学习
2、 使用dubbo优化单点登录系统
2. 系统间服务调用方式
2.1. 浏览器直接访问
浏览器发起请求,通过ajax或jsonp方式请求:
2.2. Httpclient方式
系统与系统之间通过Httpclient发起http请求来请求数据:
http协议是短连接。
2.3. RPC方式
采用长连接方式。
3. 单点系统中存在的问题
在单点登录系统中的功能中,根据token查询用户信息的功能对系统性能要求最高,如果我们想单独调整该功能的性能是不可能的,因为该功能和其它的功能耦合再一起。
要想单独优化该功能的性能就必须把该功能单独出来,我们就可以借助与dubbo框架完成。
4. Dubbo入门
具体参考课前资料中的《dubbo入门教程.docx》
5. 使用dubbo优化单点系统的查询功能
5.1. 创建taotao-sso-query-api工程 5.1.1. 创建maven工程
该工程定义查询接口。
5.1.2. 导入依赖
xsi:schemaLocation=\http://maven.apache.org/xsd/maven-4.0.0.xsd\> taotao-sso-query-api 5.1.3. 将taotao-sso中的User对象拷贝到该工程 拷贝代码并且做一些修改,将jpa的注解删除: package com.taotao.sso.query.bean; import java.util.Date; import com.fasterxml.jackson.annotation.JsonIgnore; publicclass User { private Long id; private String username; @JsonIgnore // 将对象序列化json字符串时忽略该字段 private String password; private String phone; private String email; private Date created; private Date updated; public Long getId() { returnid; } publicvoid setId(Long id) { this.id = id; } public String getUsername() { returnusername; } publicvoid setUsername(String username) { this.username = username; } public String getPassword() { returnpassword; } publicvoid setPassword(String password) { this.password = password; } public String getPhone() { returnphone; } publicvoid setPhone(String phone) { this.phone = phone; } public String getEmail() { returnemail; } publicvoid setEmail(String email) { this.email = email; } public Date getCreated() { returncreated; } publicvoid setCreated(Date created) { this.created = created; } public Date getUpdated() { returnupdated; } publicvoid setUpdated(Date updated) { this.updated = updated; } } 5.1.4. 定义服务接口 package com.taotao.sso.query.api; import com.taotao.sso.query.bean.User; publicinterface UserQueryService { /** * 根据token查询User对象 * * @return */ public User queryUserByToken(String token); } 5.2. 创建taotao-sso-query-service 5.2.1. 创建maven工程 5.2.2. 导入依赖 xsi:schemaLocation=\http://maven.apache.org/xsd/maven-4.0.0.xsd\> taotao-sso-query-service taotao-sso-query-api spring --> 5.2.3. 编写配置文件 applicationContext-redis.xml: applicationContext.xml: taotao-sso-query-servlet.xml: 5.2.4. 编写web.xml xmlns=\ xsi:schemaLocation=\http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\ id=\version=\> 5.3. 编写UserQueryService的实现 package com.taotao.sso.query.service; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.fasterxml.jackson.databind.ObjectMapper; import com.taotao.common.service.RedisService; import com.taotao.sso.query.api.UserQueryService; import com.taotao.sso.query.bean.User; @Service publicclass UserQueryServiceImpl implements UserQueryService { @Autowired private RedisService redisService; privatestaticfinal String REDIS_KEY = \; privatestaticfinal Integer REDIS_TIME = 60 * 30; privatestaticfinal ObjectMapper MAPPER = new ObjectMapper(); @Override public User queryUserByToken(String token) { String key = REDIS_KEY + token; try { String jsonData = this.redisService.get(key); if (StringUtils.isEmpty(jsonData)) { // 登录超时 returnnull; } // 重新刷新用户的生存时间 this.redisService.expire(key, REDIS_TIME); returnMAPPER.readValue(jsonData, User.class); } catch (Exception e) { e.printStackTrace(); } returnnull; } } 5.4. 实现RESTful web service package com.taotao.sso.query.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.taotao.sso.query.api.UserQueryService;
正在阅读:
淘淘商城 - day10 - 课堂笔记09-20
贝诺酯片剂车间工艺设计11-06
信息技术使城乡小学英语差距缩小08-12
2022版二轮复习英语练酷版练习:第2天 amuse—awake04-09
小学日记200字大全02-21
信息化管理之质量策划06-17
河南省长葛市第三实验高中12-13学年高一上第一次考试英语01-12
香农编码实验报告02-01
- 《硕士学位论文中期考核报告》范文 - 图文
- 2014苏教版四上期中试卷1
- 东师公共事业管理16秋在线作业1
- 民法讲义2
- 部编版七年级语文下册期中测试题及答案
- 2016年北京工具钳工中级理论考试题
- 现场流行病学考试题型和范围
- 6-中国劳动关系学院
- 《网络测试与故障诊断》复习题
- 甲型H1N1流感流行病学及应对策略研究进展
- 语文中考语段阅读试题的解题规律及技巧
- 2017年房地产估价师《制度与政策》真题及答案
- 初中英语常用动词过去式及
- 《C语言程序设计》题库及答案
- 计算机文化基础形成性考核册题答案
- 计算机应用技术专业人才培养方案
- ArcGIS中数字化步骤
- 航海仪器实操 安许茨4型陀螺罗经
- 机械燃油喷射系统结构及喷油过程
- 2009陈省身杯数学邀请赛五年级试题 - 图文