- 博客(136)
- 收藏
- 关注
原创 开发微服务电商项目演示(五)
第2步:分别删掉zmall-order和zmall-product模块中resources目录下的bootstrap.xml和register.conf文件。点击限时秒杀中的秒杀商品,根据秒杀商品ID查询秒杀商品详情信息并跳转到sellDetail.html页面展示秒杀商品信息。第1步:从zmall-common的pom.xml中移除spring-session-data-redis依赖。第1步:先注释掉zmall-order和zmall-product模块中的seata依赖。
2023-02-14 00:53:04 508 1
原创 开发微服务电商项目演示(四)
5、第二阶段全局事务回滚,TC会通知各各分支参与者回滚分支事务,通过 XID 和 Branch ID 找到相应的回滚日志,通过回滚日志生成反向的 SQL 并执行,以完成分支事务回滚到之前的状态,如果回滚失败则会重试回滚操作。TCC是业务层面的分布式事务,最终一致性,不会一直持有资源的锁。Seata 是通过代理数据源实现事务分支的,所以需要配置io.seata.rm.datasource.DataSourceProxy 的Bean,且是 @Primary默认的数据源,否则事务不会回滚,无法实现分布式事务。
2023-02-13 18:30:36 681
原创 开发微服务电商项目演示(三)
SpringCloud微服务将一个完整的单体应用拆解成了一个个独立的子服务,而每一个独立的微服务子模块都将部署到不同的服务器中,而服务与服务之间是独立隔离的,这个时候使用要实现服务与服务之间的session会话共享,则需要借助于spring-session框架来解决分布式session管理与共享问题。具体请参考第8步的gateway网关路由配置。第4步:删除zmall-product商品服务和zmall-gateway网关服务下的static静态资源,改用nginx中配置的静态资源。
2023-02-11 02:10:43 666
原创 开发微服务电商项目演示(二)
将资料目录中的《易买网网页素材.rar》解压后,将其中Index.html、Product.html和js/css/images等等添加到项目的templates和static目录下,最好请将Index.html、Product.html页面首字母改成小写。将公共子模块中生成的service层代码复制到商品服务子模块zmall-product中,并删除掉非商品相关的service接口及实现类。在公共模块zmall-common中注释掉mybatis的依赖引入,改换成mybatis-plus依赖引入。
2023-02-08 11:35:49 465
原创 Oauth2(三)
在上一章中我们已经走了一遍基本的流程 本期内容就是将我们的oauth2进行与jwt和redis的集成。用户携带授权码向认证服务器发送请求,判断授权码结果为true(此后授权码为重新发送请求申请的授权码)跳过此断点 进入登录页面 需要认证身份来进行授权 相当于想要登录京东首先要先登录微信进行授权。客户中拿到获取到的授权码(由于电脑问题 本授权码为第二次操作系统生成的)登录页面的验证身份的判断已经在方法中定死了 输入固定的用户名即密码即可。客户获取到资源服务器的数据 从而登录客户方(淘宝)
2023-02-05 15:36:26 128
原创 OAuth2(二)
演示代码下载:下载完成解压源代码在idea中打开演示项目(做了部分修改)记得先修改maven仓库地址为自己的本地仓库地址 否则会从默认的国外地址下载 容易缺损查看pom依赖:其中
2023-02-04 18:33:40 601
原创 快速入门OAuth2
令牌又时效性,一般是短期的,且不能修改,密码一般是长期有效的令牌可以由颁发者撤销,且即时生效,密码一般可以不用修改而长期有效。1. 页面跳转后,用户登录认证服务器,同意或拒绝资源服务器的授权请求,认证服务器根据上一步的。这种方式的特点:这种方式不安全,适用于对安全性不高的场景,令牌的有效期一般设置的比较短,通。小王看到了服务人员的申请,在验证了客服人员的公司名称,工号等信息后,同意申请,并发给他。客服人员获取授权码之后,使用授权码去申请进门的令牌,申请发到小王的老婆那里,小王老婆在。
2023-02-01 11:47:38 734
原创 Mybatis-plus(下)
可参考官方文档:https://baomidou.com/pages/0d93c0/场景:当两个工作人员同时去处理一条投诉工单的时候当两个人一起点开了投诉工单详情 并一起编辑处理 随后同时反馈给用户时 此时就会出现矛盾 当系统正常 没有bug的时候 是会出现两条不同的反馈信息都发送给用户的情况 此时用户的反应:???倒地哪一条是对的?此时就可以用到乐观锁了配置示例:4.测试乐观锁原数据:66L若没有加乐观锁的情况代码理应对他进行两次操作 也就是最终这条数据的name值为 ”leguansuo02“但是我们此
2023-01-30 21:00:35 1213
原创 Mybatis-plus(上)
在数据表的设计中,经常需要加一些字段,如:创建时间,最后修改时间等,此时可以使用mybatis-plus来帮我们进行自动维护。编写 Mapper 包下的 UserMapper接口。不更改最原始的model层 测试方法默认就会。在开发中将sql语句打印到控制台,以便于调试。同时数据库中的对应表也开启自增 否则会报错。注意:CURRENT_TIMESTAMP。启动类,指定mapper接口的位置。一: 通过数据库完成自动填充。第一步:实体类中加入注解。完成后可以通过新增或更新。二:使用程序完成自动填充。
2023-01-12 16:43:00 654
原创 swagger
1.前后端分离的特点2.在没有swagger之前3.swagger的作用4.swagger的优点5.集成swagger5.1 新建springboot项目使用集成开发工具创建一个springboot工程5.2 集成swagger1.pom.xml2.编写swagger配置类报错:这是在加载一个插件 但是2我使用的2.77的版本已经没有这个插件了 所以我将版本换成了稍微老一点的2.5.11就好了。
2023-01-07 15:06:47 871
原创 小程序:后台交互-首页
所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。fulfilled: 成功 (已完成), 调用 resolve, 就会将状态从pending改成fulfilled, 且将来就会执行.then。rejected: 失败 (拒绝), 调用 reject, 就会将状态从pending改成rejected, 且将来就会执行.catch。至此后台搭建已经完成!
2023-01-03 11:00:12 752
原创 小程序:会议OA其他页面
会议管理会议管理一,自定义tabs组件文档参考:自定义组件 | 微信开放文档微信开发者平台文档设为自定义组件{}3.tabs.组件所展示的内容组件的样式组件的方法引入组件使用{}}会议页面 (与首页的会议展示相同)至此自定义组件完成二,会议管理会议页面样式(与首页样式也相同)可以在局部样式)中编写与首页相同的样式即可在两个页面共同使用 页面样式可以覆盖局部样式添加list页面中用于遍历的数据。
2023-01-01 14:22:00 420
原创 小程序:会议OA项目-首页
Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。
2022-12-30 00:23:29 754
原创 小程序:小程序框架
事件是视图层到逻辑层的通讯方式。事件可以将用户的行为反馈到逻辑层进行处理。事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。事件对象可以携带额外信息,如 id, dataset, touches。
2022-12-28 16:52:05 971
原创 如何开发微信小程序?(入门须知)
一,小程序的介绍一,小程序的介绍什么是小程序?2017年度百度百科十大热词之一微信小程序(wei xin xiao cheng xu),简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用( 张小龙对其的定义是无需安装,用完即走,实际上是需要安装的,只不过小程序的体积特别小, 下载速度很快,用户感觉不到下载的过程 )限制:同一个分包中的页面享有共同的预下载大小限额 2M,限额会在工具中打包时校验。2017年1月9日0点,万众瞩目的微信第一批小程序正式低调上线。
2022-12-26 18:20:13 9834
原创 RabbitMQ-快速了解交换机
一. Exchange(交换机)的作用一. Exchange(交换机)的作用在RabbitMQ中,生产者发送消息不会直接将消息投递到队列中,而是先将消息投递到交换机中,在由交换机转发到具体的队列,队列再将消息以推送或者拉取方式给消费者进行消费创建消息 路由键 pull/push生产者------------>交换机------------>队列------------>消费者交换机原理图:二. Exchange(交换机)的类型。
2022-12-23 01:11:29 326
原创 RabbitMQ(消息中间件)入门
RabbitMQ是以AMQP协议实现的一种消息中间件产品。AMQP是Advanced Message Queuing Protocol的简称,它是一个面向消息中间件的开放式标准应用层协议。MQ Broker。
2022-12-21 00:53:30 907
原创 Docker-Nacos的持久化和集群部署
注1:容器启动成功后,修改mysql允许root远程访问(同上)查看新的mysql中也有上一次的数据 nacos_config。
2022-12-19 23:57:20 706
原创 Docker-Docker安装nginx
目录一,容器之间的相互通信 ping 1.1 两个容器在同一网段 1.2 两个容器在不同网段 二,安装Nginx2.1 nginx是什么安装步骤2.4 部署前端项目上传项目 步骤 1 使用默认网络模式创建一个c3容器c1 c2是指定使用自定义网络创建的 而c3并没有指定 也就是默认的bridge模式 不处于统一网络中他们之间是不能互相访问的2 查看自定义网络mynet状态有c1,c2 3 查看默认的bridge模式中状态 只有c3 4 连接失败,控制台出现如下提
2022-12-14 21:16:30 776
原创 Docker-网络配置
为什么需要自定义网络,因为当使用docker引擎进行部署项目在容器中之后,会被分配随机IP,当关闭之后再开启时,所被分配的IP地址极大可能会不一样。那么步骤:1.创建自定义网络【这一行命令时创建网桥】作用:创建容器的时候可以指定IP地址2.创建容器3.查看网络模式发现此时我们的ip就可以固定了!好了本期内容到此结束 我们下期见!
2022-12-13 22:58:34 1758 1
原创 Docker-自定义镜像上传阿里云
1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和BusyBox以减少系统的体积和运行时的资源消耗。2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu中是apt-get),我们可以通过https://pkgs.alpinelinux.org/packages 查询包信息。
2022-12-13 18:27:21 1343
原创 Docker-数据卷(Data Volumes)&dockerfile
非自定义的tomcat不可访问第二步:向 mytomcatDockerfile 编辑内容ADD jdk-8u151-linux-x64.tar.gz $workerDir 添加进入工作目录并解压COPY apache-tomcat-8.5.20.tar.gz $workerDir 添加进工作目录不解压力以及准备jdk第三步:构建镜像第四步:通过镜像运行2个容器进行测试第五步:浏览器输入 两个都可以访问。
2022-12-11 23:24:03 727 1
原创 Docker-Docker命令(基本、镜像、容器)
-since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)2,删除多个:docker rmi -f 镜像名称1:[TAG]/或者镜像id 镜像名称2:[TAG]docker run -it --name 别名 镜像ID /bin/bash命令。docker run -it --name 别名 镜像ID。
2022-12-08 23:52:37 435
原创 Doker-Doker入门(安装配置&aliyun镜像仓库&常用命令)
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
2022-12-08 22:19:35 335 1
原创 SpringCloud-Geteway之限流,熔断(超详细篇)
目录一,Sentinel--服务容错1.1 高并发带来的问题1. 使用压测工具,对请求进行压力测试2.修改配置文件中tomcat的并发数1.2 服务雪崩效应1.3 常见容错方案1.4 Sentinel入门什么是Sentinel微服务集成Sentinel安装Sentinel控制台实现一个接口的限流sentinel简单模式之流控QPS案例sentinel流控简单模式之并发线程案例Sentinel的概念和功能基本概念重要功能Sentinel规则流控规则简单配置配置流控模式配置流控效果降级规则自定义异常返回热点规则
2022-12-08 10:57:43 3181
原创 SpringCloud-服务网关之Spring Cloud Gateway
目录一,Gateway--服务网关网关简介Gateway简介Gateway快速入门基础版 Gateway增强版 简化版跨域请求二,Gateway核心架构基本概念执行流程 三,断言内置路由断言工厂基于Datetime类型的断言工厂基于远程地址的断言工厂基于Cookie的断言工厂基于Header的断言工厂基于Host的断言工厂基于Method请求方法的断言工厂基于Path请求路径的断言工厂基于Query请求参数的断言工厂基于路由权重的断言工厂如何使用内置路由断言工厂 自定义路由断言工厂第1步:在配置文件中,添
2022-12-05 20:20:03 1328
原创 SpringCloud-服务配置介绍&Nacos实现管理配置
首先我们来看一下,微服务架构下关于配置文件的一些问题:配置文件相对分散。在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散在各个微服务中,不好统一配置和管理。配置文件无法区分环境。微服务项目可能会有多个环境,例如:测试环境、预发布环境、生产环 境。每一个环境所使用的配置理论上都是不同的,一旦需要修改,就需要我们去各个微服务下手动 维护,这比较困难。配置文件无法实时更新。我们修改了配置文件之后,必须重新启动微服务才能使配置生效。
2022-12-01 21:00:17 445
原创 SpringCould-Nacos注册中心和服务消费方式
1.1 先来思考一个问题通过上一期的操作,我们已经可以实现微服务之间的调用。但是我们把服务提供者的网络地址 (ip,端口)等硬编码到了代码中,这种做法存在许多问题:一旦服务提供者地址变化,就需要手工修改代码一旦是多个服务提供者,无法实现负载均衡功能一旦服务变得越来越多,人工维护调用关系困难那么应该怎么解决呢?这时候就需要通过注册中心动态的实现服务治理。什么是服务治理?服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。在上一期中我们是微服务之间直接的相互调用。
2022-11-29 15:55:17 1355
原创 Springcloud-实现跨项目相互调用(简易版)
Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware. - 版本说明 · alibaba/spring-cloud-alibaba Wiki。本次将使用订单服务微服务调用用户以及商品的微服务,我们先启动用户以及商品的微服务 最后使用订单微服务调用。-- SpringBoot 依赖配置 -->
2022-11-26 23:27:19 2692
原创 SpringCloud-程序员须知的系统框架知识&微服务框架详解
微服务架构在某种程度上是面向服务的架构SOA继续发展的下一步,它更加强调服务的"彻底拆分服务原子化拆分,独立打包、部署和升级,保证每个微服务清晰的任务划分,利于扩展微服务之间采用Restful等轻量级http协议相互调用分布式系统开发的技术成本高(容错、分布式事务等)微服务架构, 简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独 立运行的项目。
2022-11-26 11:43:04 152
原创 springboot-自定义starter
官方#第三方SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。
2022-11-26 11:08:54 390
原创 springboot整合其他项目
阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池 - druid/druid-spring-boot-starter at master · alibaba/druid。
2022-11-25 16:10:40 1289
原创 前后端分离 基础(新增与查询)
本期是从导入MAVEN项目后准备自动生成开始编写的后端的配置以及生成代码加编写模糊查询方法前端的界面搭建和事件以及获取后台的接口。
2022-11-22 13:23:14 1061
原创 Springboot电商项目前后端搭建
前端:Freemarker、jQuery后端:SpringBoot、MyBatisPlus、Lombok中间件:Redis用户表:t_user商品表:t_goods订单表:t_order订单项表:t_order_item数据源表:t_dict_type数据项表:t_dict_data后续微服务秒杀项目所用:秒杀商品表:t_seckill_goods秒杀订单表:t_seckill_order/***/// 摆件花艺// 壁挂北欧。
2022-11-08 18:43:47 962
原创 springboot视图渲染技术(超详细)
4、jsp中是有分页标签 ——> freemarker中的分页条展示问题,以及分页功能。indexController用于传递参数与访问index.ftl。head.ftl编写一个局部变量和全局变量供index.ftl获取。用于Freemarker引擎生成分页条的工具类。运行项目后返回index.ftl获取到的数据。,对应配置中的suffix:.ftl。index.ftl编写语法和效果展示。编写一个方法用于访问ftl页面。
2022-11-07 15:50:26 1272
原创 Springboot集成ORM框架开发(保姆级)
(简称 MP)是一个的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2022-11-06 05:00:48 993 2
原创 快速入门Springboot
Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用。
2022-11-04 16:50:27 407
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人