后端分层
文章平均质量分 71
允文
喜爱编码
展开
-
【无标题】
RESTful登录(基于Spring及Redis的Token鉴权)文章目录RESTful登录(基于Spring及Redis的Token鉴权)前言一、交互过程二、案例分析1.创建实体类2.restful接口总结前言REST (Representational State Transfer) 是一种软件架构风格。它将服务端的信息和功能等所有事物统称为资源,客户端的请求实际就是对资源进行操作,它的主要特点有: - 每一个资源都会对应一个独一无二的 url - 客户端通过 HTTP 的 GET、POST、P原创 2021-11-18 00:01:07 · 82 阅读 · 0 评论 -
2021-11-12
后端接受前端数据的常用注解文章目录后端接受前端数据的常用注解前言一、通过HttpServletRequest接收二、@RequestParam注解三、@PathVariable注解四、@RequestBody注解总结前言有人说java工程师就是spring工程师,也有人说java工程师就是接口工程师,其实都不准确,我个人人外java工程师就是要和数据打交道,那今天我们就来了解一下后端接受前端数据的常用注解。一、通过HttpServletRequest接收并不推荐这种方式,这种方式很麻烦,而且是原创 2021-11-13 14:59:19 · 486 阅读 · 0 评论 -
2021-11-09
电商业务代码优化文章目录电商业务代码优化前言电商代码优化前言电商是目前最火的互联网业务,作为比较复杂的业务,我们更加追求业务代码的优化,优化业务代码并不意味着“短就是优化”,而是更加结构化,更具有扩展性。电商代码优化用户挑选商品放入购物车,然后下单结算,流程如下:挑选商品—下单—结算—生成订单—通知在这个业务流程中我们业务逻辑如下:验证账号是否合法调用第三方接口查商品的打折价格钱包金额扣除生成订单信息通知用户下单成功,等待收货初级写法:@Service public原创 2021-11-09 16:06:25 · 71 阅读 · 0 评论 -
2021-11-08
MapStruct插件文章目录MapStruct插件前言一、基本映射1.基本使用2.字段间映射3.多源类映射4.子对象映射二、高级映射1.集合映射策略2.添加表达式总结前言MapStruct提供了一个功能强大的集成插件,可减少开发人员编写模板代码的工作量,使创建映射器的过程变得简单快捷。MapStruct是一个用于创建映射器类的库。从基本映射到自定义方法和自定义映射器,此外,关于MapStruct提供的一些高级操作选项,包括依赖注入,数据类型映射、枚举映射和表达式使用,在本文中也有讲述案例。一、原创 2021-11-08 20:32:59 · 180 阅读 · 0 评论 -
2021-11-07
后端分层解读文章目录后端分层解读前言一、分层目录详细项目结构目录分层详细介绍resource目录项目结构划分总结前言阿里手册约定后端分层:开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行网关安全控制、流量控制等。终端显示层:各个端的模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染, JSP 渲染,移动端展示等。Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。Service原创 2021-11-07 23:21:43 · 715 阅读 · 0 评论 -
2021-11-07
前后端分离和后端分离文章目录前后端分离和后端分离前言一、前端二、后端1.后端分层2.分层领域模型的转换前言前后端分离,首先部署是分离的,前端和Java部署机器分离。Java接口只返回JSON数据。我们看一下Java接口:一、前端用前端(vue/angular/react)开发完,开发环境下将JavaScript编译/打包完,那我们能得到纯静态的文件。我们可以直接将纯静态文件放到Nginx(CDN)等等地方,前提就是要能响应HTTP请求。如果请求是调用后端服务,则经过Nginx转发到后端服务器原创 2021-11-07 23:09:54 · 86 阅读 · 0 评论 -
2021-11-07
VO(视图模型) 与 DTO(数据传输对象)文章目录VO(视图模型) 与 DTO(数据传输对象)前言一、DTO二、MapStruct前言VO(View Object):VO是显示视图模型,视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。举例:展示层将DTO传送过来男性显示成帅哥(客户端1),或者显示成靓仔(客户端2);将帅哥或者靓仔,转换成男性,以DTO形式请求服务端。DTO(Data Transfer Object):DTO是传输模型,数据传输对象,在这里泛指用于展示原创 2021-11-07 22:03:20 · 103 阅读 · 0 评论 -
2021-11-04
电商微服务环境搭建文章目录电商微服务环境搭建前言一、 案例准备二、使用步骤创建父工程创建基础模块创建用户微服务创建商品微服务创建订单微服务总结前言本次是使用的电商项目中的商品、订单、用户进行讲解。一、 案例准备2.1.1 技术选型maven:3.3.9数据库:MySQL 5.7持久层: SpingData Jpa其他: SpringCloud Alibaba 技术栈2.1.2 模块设计springcloud-alibaba 父工程shop-common 公共模块【实体类】sho原创 2021-11-04 23:18:52 · 94 阅读 · 0 评论 -
2021-11-04
再聊微服务架构文章目录再聊微服务架构前言一、总体架构二、常见概念1.服务治理2.服务调用3.服务网关4.服务容错5. 链路追踪三、解决方案1.SpringCloud2.SpringCloud Alibaba四、SpringCloud Alibaba1.主要功能2.组件总结前言我们使用微服务架构时会经常问自己以下这些问题,如果我们能够回答下面这些问题,这个微服务架构我们就能很好地去领悟,去构建。这么多小服务,他们之间如何通讯?(restful rpc)这么多小服务,客户端怎么访问他们?(网关)这原创 2021-11-04 20:38:40 · 100 阅读 · 0 评论 -
2021-11-04
再叙架构的发展之路文章目录再叙架构的发展之路前言一、单体应用架构二、垂直应用架构三、分布式架构四、SOA架构五、 微服务架构总结前言随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构—>垂直应用架构—>分布式架构—>SOA架构—>微服务架构,当然还有悄然兴起的Service Mesh(服务网格化)。大部分互联网公司使用分布式架构和微服务架构,这类架构的最大好处就是扩展性强,模原创 2021-11-04 20:06:36 · 91 阅读 · 0 评论 -
2021-10-27
Spring Cloud Zuul:API网关服务文章目录Spring Cloud Zuul:API网关服务前言一、微服务架构二、功能1.路由功能2.过滤功能总结前言Spring Cloud Zuul 是Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的API网关使用,支持动态路由与过滤功能。API网关为微服务架构中的服务提供了统一的访问入口,客户端通过API网关访问相关服务。API网关的定义类似于设计模式中的门面模式,它相当于整个微服务架构中的门面,所有客户端的原创 2021-10-27 18:27:21 · 113 阅读 · 0 评论 -
2021-10-27
Redis存储令牌:分布式之便文章目录Redis存储令牌:分布式之便前言一、存储方式对比二、Redis存储token总结前言我们都是把令牌存储在内存中的,这样如果部署多个服务,就会导致无法使用令牌的问题。 Spring Cloud Security中有两种存储令牌的方式可用于解决该问题,一种是使用Redis来存储,另一种是使用JWT来存储。JWT存储在客户端,验证的时候,会带上这个内容。但是因为存储在浏览器端,在服务端共享则不是很方便,我们将token存在Redis中,这样分布式缓存就能共享这个to原创 2021-10-27 15:45:54 · 80 阅读 · 0 评论 -
2021-10-27
Oauth2结合JWT使用文章目录Oauth2结合JWT使用前言一、JWT二、使用步骤三、刷新令牌总结前言Spring Cloud Security 为构建安全的SpringBoot应用提供了一系列解决方案,结合Oauth2还可以实现更多功能,比如使用JWT令牌存储信息,刷新令牌功能。一、JWTJWT token的格式:header.payload.signature;header中用于存放签名的生成算法,我们最常用的就是HS256;payload中用于存放数据,比如过期时间、用户名、用户所拥原创 2021-10-27 14:43:13 · 123 阅读 · 0 评论 -
2021-10-27
Spring Cloud Security:Oauth2使用提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Spring Cloud Security:Oauth2使用前言一、授权模式二、使用步骤授权码模式使用密码模式总结前言OAuth 2.0是用于授权的行业标准协议。OAuth 2.0为简化客户端开发提供了特定的授权流,包括Web应用、桌面应用、移动端应用等。我们了解一下相关角色:Resource owner(资源拥有者):拥有该资源的最终用户,他有访问资源的账号密原创 2021-10-27 14:04:48 · 107 阅读 · 0 评论 -
2021-10-27
Spring Cloud OpenFeign文章目录前言一、负载均衡二、服务降级三、日志打印总结前言有人说Spring Cloud OpenFeign是一个四不像,又或者说Spring Cloud OpenFeign是Ribbon和Hystrix的集合体,这样的说法其实都有自己的道理,当我们去看Spring Cloud OpenFeign的时候,我们发现Spring Cloud OpenFeign其实就是基于Ribbon和Hystrix的声明式服务调用。Feign是声明式的服务调用工具,我们只需创原创 2021-10-27 11:50:05 · 97 阅读 · 0 评论 -
2021-10-27
Hystrix Dashboard:Hystrix监控界面文章目录前言一、Hystrix 单个实例监控二、Hystrix 集群实例监控总结前言Hystrix Dashboard 是Spring Cloud中查看Hystrix实例执行情况的一种仪表盘组件,支持查看单个实例和查看集群实例,这种监控效果对能够及时发现错误有很好的效果。一、Hystrix 单个实例监控在pom.xml中添加相关依赖,在application.yml进行配置<dependency> <grou原创 2021-10-27 11:00:56 · 197 阅读 · 0 评论 -
2021-10-27
Spring Cloud Hystrix:请求处理文章目录Spring Cloud Hystrix:请求处理前言一、请求缓存二、请求合并总结前言Hystrix的请求缓存和请求合并是我们经常使用的,尤其是请求合并,能够应用到批处理中,这在请求数量庞大时,能够有极大的用处。为什么要用缓存,这个大家都能明白,当系统并发量越来越大时,我们需要使用缓存来优化系统,达到减轻并发请求线程数,提供响应速度的效果。微服务系统中的服务间通信,需要通过远程调用来实现,随着调用次数越来越多,占用线程资源也会越来越多。Hy原创 2021-10-27 09:09:33 · 118 阅读 · 0 评论 -
2021-10-26
Spring Cloud Hystrix:服务容错保护文章目录Spring Cloud Hystrix:服务容错保护前言一、@HystrixCommand详解二、创建一个hystrix-service模块二、使用步骤1.引入库2.读入数据总结前言今天我们主要是围绕服务降级去了解的,服务降级就是将某些服务停掉或者不进行业务处理,释放资源来维持主要服务的功能。 某电商网站在搞活动时,活动期间压力太大,如果再进行下去,整个系统有可能挂掉,这个时候可以释放掉一些资源,将一些不那么重要的服务采取降级措施,比如原创 2021-10-26 22:35:14 · 259 阅读 · 0 评论 -
2021-10-26
Spring Cloud Ribbon:负载均衡的服务调用文章目录Spring Cloud Ribbon:负载均衡的服务调用前言一、负载均衡策略二、RestTemplate的使用三、创建一个user-service模块四、创建一个ribbon-service模块负载均衡功能演示前言Spring Cloud Ribbon 是Spring Cloud Netflix 子项目的核心组件之一,主要给服务间调用及API网关转发提供负载均衡的功能,在微服务架构中,很多服务都会部署多个,其他服务去调用该服务的时候原创 2021-10-26 19:45:41 · 97 阅读 · 0 评论 -
2021-10-25
Spring Cloud Eureka:服务注册与发现(一)文章目录Spring Cloud Eureka:服务注册与发现(一)前言一、使用IDEA来创建SpringCloud应用二、搭建Eureka客户端三、搭建Eureka注册中心集群总结前言Spring Cloud Eureka是Spring Cloud Netflix 子项目的核心组件之一,主要用于微服务架构中的服务治理。在微服务架构中往往会有一个注册中心,每个微服务都会向注册中心去注册自己的地址及端口信息,注册中心维护着服务名称与服务实例的原创 2021-10-25 23:30:30 · 103 阅读 · 0 评论 -
2021-10-25
Spring Cloud整体架构详述文章目录Spring Cloud整体架构详述前言一、整体架构二、Spring Cloud Eureka:服务注册与发现前言目前微服务是很多公司追求的新潮流,但是微服务不仅仅是一个趋势,更是一种互联网架构的解决方式,从以前来看,我们从最初的前后端不分离的架构开发,到SPA这种前后端分离架构的开发,从侧面就说明架构在进步,架构的魅力就是应对业务,一个单机系统能够处理的业务相当有限,我们必须要开拓多服务处理方式,这就是微服务,微服务不是简单地将不同项目杂糅,而是形成一个原创 2021-10-25 22:35:10 · 81 阅读 · 0 评论 -
2021-10-25
关于序列化不可不谈的 serialVersionUID很多时候我们都会在实现序列化是写上:private static final long serialVersionUID = 1L;这是什么意思呢?又有什么作用呢?我们一起来看一下:作用简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致原创 2021-10-25 14:49:51 · 64 阅读 · 0 评论 -
2021-10-20
Netty系列(二)文章目录Netty系列(二)前言一、Netty 线程模型二、Netty服务端和客户端的启动过程1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、Netty 线程模型在 Netty 主要靠 NioEventLoopGroup 线程池来实现具体的线程模型的 。我们实现服务端的时候,一般会原创 2021-10-20 21:37:50 · 107 阅读 · 0 评论 -
2021-10-19
SQL调优提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录SQL调优前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用原创 2021-10-19 23:46:47 · 209 阅读 · 0 评论 -
2021-10-18
阿里开源,限流之“后”—Sentinel文章目录阿里开源,限流之“后”---Sentinel前言一、Sentinel形式二、限流1.熔断降级2.热点限流3.过载保护总结前言限流分为单机和分布式两种,单机限流是指限定当前进程里面的某个代码片段的 QPS ,一旦超出规则配置的数值就会抛出异常或者返回 false。我把这里的被限流的代码片段称为临界,注意临界是一个节点。而分布式则需要另启一个集中的服务器,这个服务器针对每个指定的资源每秒只会生成一定量的通过数,在执行临界的代码之前先去集中的服务领取通行证,原创 2021-10-18 18:47:34 · 80 阅读 · 0 评论 -
2021-10-16
Spring 状态机(二)文章目录前言实现总结前言状态机能够实现状态的跳转,这种运用场景在实际中十分频繁地出现,在我们的经常使用的app中,几乎都有注册,注销功能,如果利用平时的转换逻辑其实也能够实现目标,但是作为新时代程序员必须尝试一下状态机。实现总结1.状态:首先注册模块我们已经相当熟悉,应该有4个状态:未连接、已连接、注册中、已注册。我们的目的就是实现这些逻辑合乎逻辑的流转。public enum RegStatusEnum { // 未连接UNCONNECTED,// 已连接原创 2021-10-16 22:08:24 · 110 阅读 · 0 评论 -
2021-10-15
RESTful接口开发(二)文章目录RESTful接口开发(二)前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言上次说到了Spring Boot框架环境下的RESTful接口开发,其实是很简单的,这种简单的开发也能够返回数据给前端,现在我们再来提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy原创 2021-10-15 12:01:06 · 4254 阅读 · 0 评论 -
2021-10-14
前后端分离逻辑和框架图片文章目录前言一、前后端分离是什么?二、使用步骤1.引入库2.读入数据总结前言说起前后端分离,很多人都认为是拆分前端和后端,这样理解没有错,但其实只是一种浅平层的理解,其实前后端分离深层次的改变是改写了数据的传输途径和方式,也细分了前端和后端具体的工作。一、前后端分离是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas原创 2021-10-14 09:32:29 · 94 阅读 · 0 评论 -
2021-10-13
详解java序列化和反序列化文章目录详解java序列化和反序列化前言一、什么是序列化和反序列化?二、序列化和反序列化示例总结前言当我们去看序列化时,决不能只停留在概念层次,得从源码角度去进行剖析,对于java序列化,键入就可以看到相应的源码。相关的有有五项内容:java.io.ObjectOutputStreamjava.io.ObjectInputStreamjava.io.ObjectOutputjava.io.ObjectInputjava.io.Externalizable这原创 2021-10-13 18:56:53 · 78 阅读 · 0 评论 -
2021-10-13
**前后端分离之数据交互**文章目录前后端分离之数据交互前言一、前后端交互流程?二、代码实现流程1.java对象转换成JSON数据2.写controller和Ajax请求案例总结前言前后端不分离的框架就是我们使用的Spring MVC框架,servlet层中包含了写前端页面的jsp和写后端逻辑的controller,在前端的页面中混入了很多后端的逻辑,这就是传统的web开发。在传统的web开发中,页面展示的内容以及页面之间的跳转逻辑,全都由后台来控制,这导致了前后端耦合度非常高,耦合度高则意味着原创 2021-10-13 18:24:41 · 87 阅读 · 0 评论 -
2021-10-13
**RESTful接口开发(一)**文章目录RESTful接口开发(一)前言一、REST设计风格是什么?二、Spring Boot 实现RESTful1.设计接口2.创建entity类3.创建repository类4.创建controller类测试前言首先我们去接触REST设计风格的目的,还是更好地更快地进行接口开发,REST接口开发是和HTTP传输完全对接的,为什么,我会在下面的REST接口风格去介绍原因。一、REST设计风格是什么?资源是由URI来指定。对资源的操作包括获取、创建、修改原创 2021-10-13 13:33:12 · 168 阅读 · 0 评论 -
2021-10-13
**JSON数据转化(三)**文章目录JSON数据转化(三)前言一、什么是JSON序列化?二、序列化案例1.普通JavaBean转为Json格式2.List转成JSON格式3.Map转成JSON格式总结前言前面我们已经分析过了JSON数据格式,以及序列化和反序列化的方法,序列化和反序列化过程中的详细案例会在后面持续更新,但是前提是上次文章中的分页序列化一定要掌握,然后对于一些详细的序列化方法,我们今天会继续讲解。一、什么是JSON序列化?序列化这个词汇我们在java中经常需要,在很多技术栈原创 2021-10-13 11:03:07 · 87 阅读 · 0 评论 -
2021-10-13
**JSON转换(二)**文章目录JSON转换(二)前言一、JSON转换是什么?二、Gson简要使用案例前言众所周知,在非RESTful方式下去创建接口是不会得到JSON格式的数据的,那么为了得到JSON格式的数据,我们需要利用JSON转换得到JSON数据。一、JSON转换是什么?在了解JSON转换是什么之前,我们需要了解什么是JSON数据格式:JSON基本结构设计{ "success": 布尔, //响应是否成功 "code": 数字, //响应码 "message":原创 2021-10-13 10:21:21 · 66 阅读 · 0 评论 -
2021-10-11
接口开发提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录接口开发前言一、实体类二、接口开发案例1.利用Helper进行返回2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、实体类下面实体类都是和接口相关的:1.ResultModel这个类是基础实体类,有如下属性:success:原创 2021-10-12 17:04:37 · 147 阅读 · 0 评论 -
2021-10-11
接口测试文章目录接口测试前言一、接口文档具体格式二、接口测试案例1.用户信息获取2.获取用户信息,需要添加header,Content-Type application/json总结前言上次我们在讲业务开发时,就讲到了接口开发的接口文档,其实接口文档也是接口测试的必备工具。接口文档,说白了,就是供人查看的文档(一般采用Restful风格编写),通过规范接口文档编写标准,保证不同的人写出来的文档可读性和可维护性俱佳。接口文档里面定义着接口的组成。接口一般来说有两种,一种是程序内部的接口,一种是系统对原创 2021-10-11 20:17:23 · 371 阅读 · 0 评论 -
2021-10-11
Spring Data JPA(四):Query注解从学习到测试文章目录Spring Data JPA(四):Query注解从学习到测试前言一、源码分析二、案例流程1.完成pom.xml、application.properties中配置2.创建实体类3.查询实现测试前言前面的章节讲述了 Spring Data JPA一些基本的操作,尤其是Query注解的一些语法操作,相对而言上手速度快且简单易操作。JPA实现查询操作就是通过将 @Query 注解在继承 repository 的接口类方法上 。今天原创 2021-10-11 09:56:13 · 133 阅读 · 0 评论 -
2021-10-09
JPA学习总结(一)文章目录JPA学习总结(一)前言一、JPA创建实体二、增删改查实体管理1.JPA实体插入示例2.JPA实体查找示例3.JPA实体更新示例4.JPA实体删除示例总结前言在了解JPA之前,我们要先了解ORM模型,ORM是一种功能,用于通过将对象状态映射到数据库列来开发和维护对象和关系数据库之间的关系。 它能够轻松处理(或执行)各种数据库操作,如插入,更新,删除等。映射方向可分为两个部分:单向关系 - 在这种关系中,只有一个实体可以将属性引用到另一个实体。它仅包含一个侧面,由于指定原创 2021-10-09 18:43:17 · 78 阅读 · 0 评论 -
2021-10-08
使用Spring状态机实现订单状态流转文章目录使用Spring状态机实现订单状态流转前言一、什么是电商订单状态流转?二、准备知识1.简化配置2.状态配置3. 配置转换案例前言状态机是状态模式的一种应用,相当于上下文角色的一个升级版。在工作流或游戏等各种系统中有大量使用,如各种工作流引擎,它几乎是状态机的子集和实现,封装状态的变化规则。状态机可以帮助开发者简化状态控制的开发过程,让状态机结构更加层次化。Spring 提供了一个很好的解决方案,Spring Statemachine(状态机)是应用程序开原创 2021-10-08 20:16:52 · 604 阅读 · 0 评论 -
2021-10-08
JPA编程之ORM VS 半ORM文章目录JPA编程之ORM VS 半ORM前言一、JPA,ORM,半ORM是什么?二、Mybatis使用案例1.基于XML2.基于注解三、JPA使用案例前言JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA的实现思想即是ORM。ORM最大的优势,隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心。他使得我们的通用数据库交互变得原创 2021-10-08 17:20:20 · 253 阅读 · 0 评论