
业务
平静不绝望
ALOHA HEJA HE
-
原创 【2020】年终总结-佩奇OFFER
1 收获: 较为完整的搭建了推荐系统,增强了业务sense,对关键的技术挑战有沉淀,并针对系统性能进行了持续优化,思路清晰,对用的基础技术原理也有一定的学习和理解。2 不足:对于一些服务的基础技术原理了解还不是很深。------待更新-------...2021-02-09 19:33:1338
0
-
原创 动吧旅游项目 首页菜单动态化实现 part8
背景用户希望在登陆以后基于权限的不同,在首页左侧呈现不同的菜单,如何实现呢?(可以采用同步或者异步请求)初步分析基于登陆用户id,查询用户对应的菜单信息然后进行呈现原理应用分析方案实现上可以基于同步或异步查询然后进行菜单数据呈现。最终解决方案用户登陆以后,基于用户登陆id查询用户对应的一级菜单,二级菜单然后存储到指定作用域,当进入系统首页后基于thymeleaf呈现用户菜单。Vo类的定义基于用户需求将查询到的一级菜单以及一级菜单对应的二级菜单查询出来,并进行封装。package com.2020-08-24 18:02:08125
0
-
原创 Shiro(动吧旅游项目) part7
官网:http://shiro.apache.org/Shiro安全框架简介Shiro概述Shiro是apache旗下一个开源安全框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。使用shiro就可以非常快速的完成认证、授权等功能的开发,降低系统成本。用户在进行资源访问时,要求系统要对用户进行权限控制,其具体流程如图-1所示:Shiro概要架构在概念层面,Shiro 架构包含三个主要的理念,如图其中:1)Sub2020-08-24 18:01:57176
0
-
原创 AOP切面编程(动吧旅游项目) part6
Spring AOP简介AOP 是什么?AOP(Aspect Orient Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程(OOP)的一种补充和完善。它以通过预编译方式和运行期动态代理方式,实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术。如图AOP与OOP字面意思相近,但其实两者完全是面向不同领域的设计思想。实际项目中我们通常将面向对象理解为一个静态过程(例如一个系统有多少个模块,一个模块有哪些对象,对象有哪些属性),面向切面的运行期代理方式2020-08-24 18:01:46177
0
-
原创 动吧旅游项目 用户模块的实现 part5
知识点:pagehelper的使用:1.引入坐标<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </de2020-08-24 18:01:37132
0
-
原创 动吧旅游项目 角色管理模块 part4
角色管理设计说明业务设计说明本模块主要实现的是企业内部角色(岗位)的管理,可以在添加角色时,为角色分配资源访问权限,最后将角色再分配给用户原型设计说明基于用户需求,通过静态页面为用户呈现角色模块的基本需求。当在主页点击角色管理时,呈现角色列表页面在列表页面点击添加按钮时,呈现角色编辑页面,在列表页面点击编辑按钮时,呈现角色编辑页面,如图说明:假如客户对此原型进行了确认,后续则可以基于此原型进行研发。API设计说明角色管理业务后台API分层架构及调用关系如图角色管理列表页面呈2020-08-24 18:01:21141
0
-
原创 动吧旅游项目 菜单管理模块 part 3
业务设计说明菜单管理又称为资源管理,是系统资源对外的表现形式。本模块主要是实现对菜单进行添加、修改、查询、删除等操作。菜单表与角色表是多对多的关系,在表设计时,多对多关系通常由中间表(关系表)进行维护,如图:基于角色菜单表的设计,其角色和菜单对应的关系数据要存储到关系表中,其具体存储形式,如图:原型设计说明基于用户需求,实现菜单静态页面(html/css/js),通过静态页面为用户呈现菜单模块的基本需求实现。当在主页左侧菜单栏,点击菜单管理时,在主页内容呈现区,呈现菜单列表页面,如图:2020-08-24 18:01:10230
0
-
原创 动吧旅游项目 日志模块 part2
功能简介:基于用户名查询信息:在log_list中$(".input-group-btn").on("click",".btn-search",doQueryObjects) 添加方法://处理查询按钮事件 function doQueryObjects(){ //1.定义参数 $("#pageId").data("pageCurrent",1);//设置当前页码值 doGetObjects();//注意log_list和page里面doGetObjects()是2020-08-24 18:00:53143
0
-
原创 动吧旅游 生态系统项目 part 1
产品功能的实现:1.首先实现软件的功能;2.学会控制;3.运维(项目运行时日志的分析,项目的布署,项目的拓展)1. 项目简介1.1概述动吧旅游生态系统,应市场高端用户需求,公司决定开发这样的一套旅游系统,此系统包含旅游电商系统(广告子系统,推荐子系统,评价子系统,商品子系统,订单子系统,…),旅游分销系统(分销商的管理),旅游业务系统(产品研发,计调服务,系统管理,…),,。。。1.2原型分析基于用户需求,进行原型设计(基于html+css+js进行静态页面实现)。例如系统登录页面:(boo2020-08-24 17:59:55402
0
-
原创 京淘项目day14
1.Redis分片机制1.1分片即使说明前提说明:redis可以通过修改内存的大小,实现数据的存储,但是内存的资源不宜设置的过大,因为很多的时间都浪费在内存的寻址上需求: 如果有海量的数据,需要redis存储 问:应该如何处理?解决方案:采用Redis分片机制 实现内存数据的扩容知识点: 采用分片机制 主要的目的就是为了实现内存扩容.从而解决海量数据存储的问题用户在使用分片机制时,将多台redis当做1台使用.redis储存的是不同的数据1.2 Redis分片搭建步骤1.2.1分片节点说2020-08-23 16:21:5992
0
-
原创 京淘项目day13
1.利用Redis实现商品分类的缓存业务当用户点击商品分类按钮时,应该实现缓存查询.思路:1).准备key=“ITEM_CAT::”+parentID2).准备value="JSON"串3).首先查询redis缓存有: 直接获取缓存数据返回给用户.没有: 直接查询数据库,之后将返回值结果保存到redis中,方便下次使用.1.1 编辑ItemCatController@RequestMapping("/list") public List<EasyUITree> find2020-08-23 16:21:3837
0
-
原创 京淘项目day12
1. Redis 缓存机制1.1准备工作1).还原端口号信息2).修改图片上传地址3).修改HOSTS文件4).修改nginx.conf文件修改完成之后,重启nginx服务器.1.2为什么要引入缓存说明:提供用户查询数据的速度.1.3 缓存设计的因素缓存的存储的数据结构应该 K-V结构. key是唯一标识符.缓存的运行环境 应该让缓存运行在内存中.缓存的开发语言 C语言开发缓存中的内存优化策略 LRU算法/LFU算法缓存数据有效性的设定 多久超时如何防止内存数据丢失2020-08-23 16:21:1555
0
-
原创 京淘项目day08
1.实现图片的回显1.1准备虚拟路径@Servicepublic class FileServiceImpl implements FileService { private static Set<String> imageTypeSet = new HashSet<>(); private String localDirPath = "D:/tena/images"; private String urlPath="http://image.jt.c2020-08-23 16:20:53134
0
-
原创 京淘项目Day11
数据库高可用实现:1.搭建数据库主从2.实现数据库读写分离2020-08-23 16:19:4560
0
-
原创 京淘项目day10
远程连接虚拟机失败1.检查双方IP地址是否正常1.检查windows IP地址2.检查Linux的ip时,没有发现IP地址:则重启网卡即可.解决办法1;service NetworkManager stop chkconfig NetworkManager off 永久关闭 Manager网卡service network restart解决办法2://命令1:systemctl restart network //命令2:sudo service networ2020-08-23 16:19:2557
0
-
原创 京淘项目day07
1. 商品得上架/下架操作1.1业务分析当用户点击商品上架/下架的操作时,应该修改数据库中的状态信息status.上架 status = 1, 下架 status = 21.2 页面URL分析1.3 页面JS分析1.4 实现RestFul调用1.4.1 重构页面url地址1.4.2 编辑ItemController/** * 利用restFul方式实现状态修改. * 1./item/1 status=1 * 2./item/2 status=2 */ @Re2020-08-23 16:17:3147
0
-
原创 京淘项目day06
1.商品的CRUD操作1.1关于JS的数据校验说明1.1.1.必填项<td><input class="easyui-textbox" type="text" name="title" data-options="required:true" style="width: 280px;"></input></td>1.1.2价格校验<input class="easyui-numberbox" type="text" name="priceVi2020-08-23 16:17:0827
0
-
原创 京淘项目day04
1.关于项目打包/发布问题说明1.1利用maven工具项目打包说明: 父级JT 其中包含了2个子级项目jt-manager 依赖于jt-common.所以项目打包是有顺序的.打包删除:打包选项:打包完成页面:打包位置a)本地仓库中:b)target目录中:1.3SpringBoot项目发布说明: springBoot项目中,内置了tomcat服务器. 所以发布项目时,只需要通过java命令让程序执行即可.JAVA命令: java -jar xxxxx.jar/war发2020-08-23 16:16:4377
0
-
原创 【jemter】安装
1 Mac 下载https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.2.1.tgz2 解压配置tar zxvf apache-jmeter-5.0.tgz配置:~/.bash_profileexport JMETER_HOME=/Users/stefan/MyProjects/apache-jmeter-5.0 export PATH=$JAVA_HOME/bin:$PATH:..2020-05-24 15:59:36132
0
-
原创 【规则引擎】多种规则引擎(处理复杂业务逻辑)整理
1 规则引擎:(低耦合)2 全面介绍所有的规则引擎:https://www.jianshu.com/p/41ea7a43093c 包含了 业界常用的4-5种https://www.ibm.com/support/knowledgecenter/SSGHJR_5.1.0/com.ibm.isig.doc_5.1.0/CrossIdeas_Topics/RULES_ENGINE/RUD_I...2019-12-15 10:26:13336
0