WEB开发
文章平均质量分 96
duration~
将语言当做协议,聊天当做通信,将说话的内容当做数据。上下层之间进行交互时所遵循的约定叫做“接口”,通信双方同一层之间的交互所遵循的约定叫做“协议”。
展开
-
消费REST服务
Spring应用除了提供对外API之外,同时要对另一个应用的API发起请求。实际上,在微服务领域,这正变得越来越普遍。因此,花点时间研究一下如何使用Spring与RESTAPI交互是非常值得的。Spring应用可以采用多种方式来消费RESTAPI。:由Spring核心框架提供的简单、同步REST客户端。Traverson:对 Spring RestTemplate 的包装,由Spring HATEOAS 提供的支持超链接、同步的 REST客户端,其灵感来源于同名的 JavaScript库。原创 2024-01-04 19:50:36 · 888 阅读 · 0 评论 -
Spring Validation
在现代Web应用开发中,确保用户输入数据的正确性和合法性是至关重要的。Spring Validation作为Spring框架中的一个重要组成部分,提供了一套强大而灵活的机制来处理数据验证。本文将深入探讨Spring Validation的各个方面,包括其工作原理、核心组件、常用注解、高级特性以及最佳实践。原创 2024-03-16 22:11:05 · 1536 阅读 · 0 评论 -
微服务初识
单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件。原创 2024-03-15 22:27:00 · 997 阅读 · 0 评论 -
开发反应式API
当 Spring 团队在思考如何向 Web 层添加反应式编程模型时,很快就发现如果不在Spring MVC中做大量工作,就很难实现这一点。这涉及在代码中产生分支以决定是否要以反应式的方式来处理请求。本质上,这样做会将两个Web框架打包成一个,并用if 语句来区分反应式和非反应式。与其将反应式编程模型硬塞进Spring MVC 中,还不如创建一个单独的反应式 web框架,并尽可能多地借鉴 Spring MVC。Spring WebFlux 应运而生。spring 定义的完整开发技术站如图。原创 2024-03-15 22:04:19 · 1306 阅读 · 0 评论 -
MybatisPlus
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生(提供了快速使用mybatis的方式)。或说明目前我们使用MP自带的分页插件可以很友好的实现分页查询操作,但是如果一些查询需要我们自定义SQL,那该如何实现分页查询操作呢?实现流程自定义接口中直接传入Page分页对象即可;import com/*** @Description 定义mapper接口/**原创 2024-03-15 15:31:19 · 1146 阅读 · 0 评论 -
Spring Security自定义认证授权过滤器
如果对 Spring Security 了解不够请看这篇。SpringSecurity 内置的认证过滤器是基于post请求且为form表单的方式获取认证数据的,那如何接收前端Json异步提交的数据据实现认证操作呢?显然,我们可仿照UsernamePasswordAuthentionFilter类自定义一个过滤器并实现认证过滤逻辑;import com/*** 认证过滤器/*** 自定义构造器,传入登录认证的url地址} /*** 尝试去认证的方法。原创 2024-03-11 20:52:08 · 1431 阅读 · 2 评论 -
密码加密方式
SpringSecurity提供了实现PasswordEncoder接口的密码加密工具类:BcryptPasswordEncoder,该类基于Bcrypt强哈希算法来加密密码,更加安全;Bcrypt强哈希方法每次加密相同的明文得到的密文结果都不一样,这样即使数据库泄露,黑客也很难破解密码;1)Bcrypt加密一般在注册用户时,Bcrypt使用SHA-256加密算法+随机盐值+秘钥(明文密码)进行加密处理,得到的密文存入数据库中;@Test} else {生成加密的代码。原创 2024-03-11 12:22:25 · 1437 阅读 · 0 评论 -
认证授权与JWT
认证是为了保护身份的合法性,授权则是为了更细粒度的对数据进行划分,授权是在认证通过的前提下发生的。控制不同的用户能够访问不同的资源。授权是用户认证通过后根据用户的权限来控制用户访问资源的过程,拥有资源的访问权限则正常访问,没有权限则拒绝访问。例如视频网站的VIP用户,可以查看到普通用户看不到的资源信息。 如何实现授权?业界通常基于RBAC模型(Role-Based Access Control -> 基于角色的访问控制)实现授权。原创 2024-03-11 08:42:07 · 1100 阅读 · 0 评论 -
Sharding-JDBC
Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,核心由:JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成;功能特性:它们均提供标准化的数据水平扩展分布式事务和分布式治理等功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。接下来将介绍介绍:Sharding-JDBC;Sharding-jdbc 是ShardingSphere的其中一个模块,定位为轻量级Java框架。原创 2024-03-09 16:02:15 · 859 阅读 · 0 评论 -
分库分表
分库分表本质上就是为了解决由于库表数据量过大而导致数据库性能降低的问题;将原来独立的数据库拆分成若干数据库组成;将原来的大表(存储近千万数据的表)拆分成若干个小表;使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的;原创 2024-03-08 19:55:17 · 1157 阅读 · 1 评论 -
实现HttpServletRequest下多次获取流数据
众所周知request的输入流只能读取一次,不能重复读取。而在`HttpServletRequest`中,获取请求体数据的流(通过getInputStream()方法)默认只能被读取一次。一旦读取后,流将处于末尾状态,再次尝试读取会返回EOF(文件结束符),无法重新获取原始数据。如果在过滤器或者拦截器中有业务需求对输入流进行一些其他操作,那么此处读取过后再到`controller`层就会报错,提示IO异常,本次的需求就是在拦截器中获取请求体中的数据。如果多次调用会出现如下错误【如果拦截器中将请求体原创 2024-03-08 17:49:41 · 2017 阅读 · 0 评论 -
Swagger接口文档管理工具
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!核心功能该UI增强包主要包括两大核心功能:文档说明 和 在线调试文档说明:根据Swagger的规范说明,详细列出接口文档的说明,包括接口地址、类型、请求示例、请求参数、响应示例、响应参数、响应码等信息,使用 swagger-bootstrap-ui 能根据该文档说明,对该接口的使用情况一目了然。原创 2024-02-27 18:48:00 · 1201 阅读 · 0 评论 -
windows下如何搭建Yapi环境
YApi可视化部署(Windows)原创 2024-01-14 10:01:05 · 865 阅读 · 2 评论 -
docker学习总结
linux系统虽然可以部署应用,但是操作给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。原创 2024-02-23 19:39:15 · 2388 阅读 · 1 评论 -
Servlet中的请求与响应
重点service方法的两个参数request和response是由tomcat创建的 void service(ServletRequest var1, ServletResponse var2)request 表示请求数据, tomcat将浏览器发送过来的请求数据解析并封装到request对象中 servlet开发者可以通过request对象获得请求数据response 表示响应数据,服务器发送给浏览器的数据 servlet开发者可以通过response对象设置响应数据。原创 2024-02-21 22:38:02 · 1209 阅读 · 0 评论 -
Cookie和Session
对于会话跟踪这四个词,我们需要拆开来进行解释,首先要理解什么是会话,然后再去理解什么是会话跟踪会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应。从浏览器发出请求到服务端响应数据给前端之后,一次会话(在浏览器和服务器之间)就被建立了会话被建立后,如果浏览器或服务端都没有被关闭,则会话就会持续建立着浏览器和服务器就可以继续使用该会话进行请求发送和响应,上述的整个过程就被称之为会话。原创 2024-02-21 10:31:49 · 970 阅读 · 0 评论