业务场景实例问题
文章平均质量分 60
studyday1
多总结,多思考,多批判,多学习
展开
-
Redis: windows安装使用、本地启动、客户端ARDM
Redis原创 2024-05-08 09:37:12 · 208 阅读 · 0 评论 -
Redis: windows安装使用、本地启动、客户端RDM
https://www.cnblogs.com/xiaoniandexigua/p/17419288.htmlhttps://www.cnblogs.com/lal520/p/17981824原创 2024-05-08 09:29:25 · 39 阅读 · 0 评论 -
电脑磁盘分区 如何在非空D盘中分出一个E盘?
如何在非空D盘中分出一个E盘? - 知乎原创 2024-04-29 15:36:17 · 104 阅读 · 0 评论 -
【Java 泛型】java泛型‘T‘与‘?‘区别
可以表示成占位符,它自己也不知道list集合中会存放多少种类型的数据,所以这样就表明我们的list中存放N种数据类型也是可以的。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。示例:可以看到show1方法中我们使用了T,大家都知道这是泛型的常见写法,那么这里的T指的是某一类具体的对象,list集合里只能存放同一类型数据,如果插入不同类型数据则会报错。结论:'T'指的是某一类具体的对象,'?原创 2024-04-29 15:03:32 · 226 阅读 · 1 评论 -
【业务功能篇153】解决Maven编译项目报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:co
默认编译环境是JAVA 1.5 ,所以我们需要在pom.xml指定编译插件版本号,这样就可以保证更新Maven project版本不变。结论: 一般就是JDK的问题,需要确保我们编译的版本和我们本地ide配置的版本一致,比如目前用的是1.8。解决方式: 添加指定的版本,这样就不会走默认的1.5.原创 2024-04-29 09:30:49 · 336 阅读 · 0 评论 -
【业务功能篇152】Maven:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources
springboot项目中,本地运行程序,报错maven,大多数是版本兼容问题,也就是本地环境的maven配置的版本,与pom文件中的maven的插件依赖版本有差距,那么可以尝试,调整版本一致,或者可以添加maven-filtering 1.3: 依赖。原创 2024-04-29 09:15:01 · 172 阅读 · 0 评论 -
【业务功能篇151】Springboot中接口传递时间格式问题 @JsonFormat与@DateTimeFormat注解的使用
我这里就只贴这两个属性了,这里我两个注解都同时使用了,因为我既需要取数据到前台,也需要前台数据传到后台,都需要进行时间格式的转换,可以同时使用。3.完成上面两步之后,我们用对应的实体类来接收数据库查询出来的结果时就完成了时间格式的转换,再返回给前端时就是一个符合我们设置的时间格式了。提示:@JsonFormat注解可以在属性的上方,同样可以在属性对应的get方法上,两种方式没有区别。2.在你需要查询出来的时间的数据库字段对应的实体类的属性上添加@JsonFormat。1.注解@JsonFormat。原创 2024-04-25 11:09:12 · 1081 阅读 · 0 评论 -
【多线程】interrupt volatile 优雅关闭线程
如何优雅的停止一个线程?_如何优雅的关闭线程-CSDN博客原创 2024-03-26 11:14:37 · 159 阅读 · 1 评论 -
【业务功能篇 150】Java8 Time时间优化 解决线程不安全
比如多线程任务执行业务逻辑中存在时间字段的格式处理,出错的概率低,这个主要是因为业务并发量问题,大多数并发小,一旦大起来,那就会导致当前线程取得时间,是其他线程设置了的时间,时间覆盖错乱,因为其底层是final修饰,共享变量且没有做线程安全控制锁之类的;但这样的方式终究不是最好的,所以我们使用 ThreadLocal ,来优化这段代码。优化方式二:(Java8里的 java.time.format.DateTimeFormatter是线程安全的, time里的DateTimeFormat也是线程安全的)。原创 2024-03-16 21:30:24 · 580 阅读 · 0 评论 -
对比 MyBatis 和 MyBatis-Plus 批量插入、批量更新的性能和区别
https://www.cnblogs.com/SihanLin/p/17681811.html原创 2024-03-16 16:32:07 · 510 阅读 · 0 评论 -
【业务功能篇 146】Sping之RestTemplate http请求封装+配置类
Service层进行调用 第三方请求接口。原创 2024-03-15 16:11:18 · 411 阅读 · 0 评论 -
【业务功能篇 131】23种设计模式介绍
*设计模式(Design pattern)**是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结在GOF编写的设计模式(可复用面向对象软件的基础)一书中说道: 本书涉及的设计模式并不描述新的或未经证实的设计,我们只收录那些在不同系统中多次使用过的成功设计。大部分设计模式要解决的都是代码的可重用性、可扩展性问题如果说数据结构和算法是教你如何写出高效代码,那设计模式讲的是如何写出可扩展、可读、可维护的高质量代码,所以,它们跟平时的编码会有直接的关系,也会直接影响到你的开发能力。原创 2023-10-11 14:41:40 · 350 阅读 · 0 评论 -
【业务功能篇112】Springboot + Spring Security 权限管理-登录模块开发实战
Component@Override//状态码 401ServletUtils.renderString(response, JSON.toJSONString(BaseResponse.fail(code.toString(),"认证失败,无法访问系统资源")));/*** 用户登录对象**//*** 用户名*//*** 用户密码*//*** 验证码*//*** 唯一标识*/添加permissions属性和构造方法/*** 用户信息。原创 2023-09-21 18:08:29 · 1035 阅读 · 0 评论 -
【业务功能篇97】微服务-springcloud-springboot-电商购物车模块-获取当前登录用户的购物车信息
我们需要先创建一个cart的微服务,然后添加相关的依赖,设置配置,放开注解。原创 2023-09-04 20:03:32 · 1018 阅读 · 0 评论 -
【业务功能篇95】web中的重定向与转发
转发:适用于在同一个应用程序内部的不同组件之间进行页面导航,保持URL不变,共享数据。重定向:适用于跨域页面跳转,或在不同的Web应用程序之间导航,或者在处理表单提交后避免用户刷新时的表单重复提交。重定向:重定向是在客户端浏览器中进行的页面跳转。重定向:重定向是由服务器发送给浏览器的响应,浏览器会根据新的URL地址发起新的请求。转发:转发是服务器内部的操作,浏览器不知道它发生了转发,URL地址保持不变。转发:转发通常比重定向更快,因为它在服务器内部完成,不需要额外的网络请求。重定向:重定向不会共享数据。原创 2023-09-02 22:46:18 · 512 阅读 · 0 评论 -
【业务功能篇86】微服务-springcloud-系统性能压力测试-jmeter-性能优化-JVM参数调优-Nginx实现动静分离
压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。然后做针对性的测试与分析,找到影响系统性能的瓶颈,评估系统在实际使用环境下的效率情况,评价系统性能以及判断是否需要对应用系统进行优化处理或结构调整。并对系统资源进行优化。原创 2023-08-28 16:05:41 · 2036 阅读 · 0 评论 -
【业务功能篇80】Springboot项目 maven配置仓库&镜像settings文件分析
项目中我们需要依赖许多包,那么就涉及到maven配置文件,我们需要配置settings.xml文件,这里面会配置我们的本地仓库localRepository ,远程仓库:仓库会有我们的依赖仓库repository和插件依赖仓库pluginRepository, mirror镜像仓库依赖路径:工程优先去本地仓库找依赖—》 没找到就到配置文件中的mirror镜像仓库–》然后再依次去找repository、pluginRepository依赖。原创 2023-08-25 16:20:38 · 1882 阅读 · 0 评论 -
【业务功能篇79】Springboot获取多环境工具类
一般都会区别测试环境,开发环境,生产环境,测试与开发环境一般就是本地了,那么为什么需要区分呢,比如有些调用发送推送信息功能,在测试环境下,我们可以发送给开发人员自测,而生产环境下,就是正常的发送给指定的业务人员,所以可以通过获取当前配置文件所指定的环境值变量,程序在本地跑起来的时候,我们可以设定为测试环境,自测用例就用来区分生产环境时所用的一些调用了。原创 2023-08-24 14:40:17 · 330 阅读 · 0 评论 -
【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化
上面的集群部署是可以解决一部分的服务器压力,但是随着用户访问量的增多,集群节点增加到一定阶段的时候,其实作用就已经不是太大了,因为将所有的业务都集中在一起,造成耦合度很高,这时我们可以考虑业务的拆分。因为微服务中的服务实在是太多了,为了能更好的监控个服务的情况,肯定就需要链路监控服务,我们可以通过sleuth+zipkin来实现,应用层监控,系统级监控。单体架构只适合在应用初期,且访问量比较下的情况下使用,优点是性价比很高,开发速度快,成本低,但缺点也很明显,这时扩展的首先就是考虑服务器的集群处理。原创 2023-08-23 19:29:41 · 922 阅读 · 1 评论 -
【业务功能篇71】Cglib的BeanCopier进行Bean对象拷贝
选择Cglib的BeanCopier进行Bean拷贝的理由是,其性能要比Spring的BeanUtils,Apache的BeanUtils和PropertyUtils要好很多,尤其是数据量比较大的情况下。BeanCopier的主要作用是将数据库层面的Entity转化成service层的POJO。BeanCopier其实已经有很多开源版本,例如DozerMapper、Apache BeanUtils、Spring、Jodd BeanUtils甚至是Cglib都提供了这样的功能。我们这里讲的Bean原创 2023-08-21 14:56:32 · 344 阅读 · 0 评论 -
【业务功能篇70】可重入锁与不可重入锁
本篇介绍的是可重入锁和不可重入锁。可指的是可以,不可指的是不可以。重入指的是重复进入同步作用域。这里的同步作用域可以是同步代码块,也可以是同步方法或者是lock锁同步代码,无论是进入哪一个同步作用域,都意味着同步锁被重复使用。所以重入也有重复使用同步锁的意思。锁指的是同步锁,综上锁述,可重入锁指的是可以重复使用的同步锁。不可重入锁指的是不可以重复使用的同步锁。那么哪些锁是可承认锁,哪些锁是不可承认锁呢?原创 2023-08-18 17:54:15 · 614 阅读 · 0 评论 -
【业务功能篇69】Springboot 树形菜单栏功能设计
Data/***//***/@Override/*** 初始化TreeNode的parentNodeId属性*/@Override。原创 2023-08-18 10:27:10 · 630 阅读 · 0 评论 -
【业务功能篇68】电商项目相关核心设计
超文本传输协议:超文本:包括:文字,图片,音频,视频等。传输:客户端向服务端发东西,服务端向客户端发东西。协议:三方协议。怎么传,错误处理。责权利。总结:在计算机世界中:两点(客户端,服务端)直接传输 超文本的一个约定 、 规范。应用层协议。原创 2023-08-17 12:14:46 · 121 阅读 · 0 评论 -
【业务功能篇67】异构数据源表结构迁移
业务涉及到需要将数据库迁移,并且还换了不同厂商的,比如Oracle 迁移到 Mysql,原创 2023-08-17 11:55:43 · 239 阅读 · 0 评论 -
【业务功能篇66】Java工具类 Hutool使用介绍
【代码】【业务功能篇66】Java工具类 Hutool使用介绍。原创 2023-08-17 11:05:18 · 353 阅读 · 0 评论 -
【业务功能篇65】maven加速 配置settings.xml文件 镜像
【代码】【业务功能篇64】maven加速 配置settings.xml文件 镜像。原创 2023-08-16 18:27:07 · 796 阅读 · 0 评论 -
【业务功能篇64】安装docker容器,在docker上安装mysql
yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。daemon-reload: 重新加载某个服务的配置文件,如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载。在新主机首次安装 Docker Engine-Community之前,需要设置Docker仓库,之后,您可以从仓库安装和更新 Docker。原创 2023-08-16 18:25:31 · 415 阅读 · 0 评论 -
【业务功能篇63】Springboot聊聊 过滤器和拦截器
过滤器主要用于对请求进行预处理,例如对请求参数进行验证、修改等。然后,将请求传递给拦截器,在拦截器中进行更复杂的处理、验证、记录或修改。拦截器通常用于在请求到达目标之前或之后,对请求进行处理、验证、记录或修改的场景。例如,在Web开发中,拦截器可以用于验证用户的身份、检查权限、记录请求日志,或对响应进行处理,如添加跟踪信息或统计数据等。例如,在一个电子商务网站中,用户进行商品搜索时,你可以使用过滤器来过滤特定的商品类别、价格范围或其他条件,以便用户仅看到符合筛选条件的结果。原创 2023-08-14 15:03:03 · 534 阅读 · 0 评论 -
【业务功能篇62】Spring boot maven多模块打包时子模块报错问题
而Service模块无法依赖API模块的可执行jar,所以编译失败。原创 2023-08-12 10:08:41 · 1361 阅读 · 1 评论 -
【业务功能篇61】SpringBoot项目流水线 dependencyManagement 标签整改依赖包版本漏洞问题
依赖管理标签去强制锁定,我们这个module模块中代码引用到的这些api接口功能时,才会去强制锁定使用这个指定的版本,而不会再去用引入框架jar包内的间接引用的版本了,可以说这也是一个 最短路径依赖原则,因为业务代码就是在该module工程下的,再加上是在这个模块的pom文件下定义的这个依赖管理指定版本号。,增加了一些固定的形参属性,需要传递参数,这里只能是手动去改写代码,兼容高版本,甚至可能有些导入导出的接口功能,跨版本过大,导致旧api接口都发生大改动,比如接口包名,类名,接口名,路径等等。原创 2023-08-01 11:39:58 · 506 阅读 · 0 评论 -
【业务功能篇60】Springboot + Spring Security 权限管理 【终篇】
我们也可以定义自己的权限校验方法,在@PreAuthorize注解中使用我们的方法。/*** 自定义权限校验方法**//*** 自定义 hasAuthority* @param authority 接口指定的访问权限限制*///获取当前用户的权限//判断集合中是否有authority使用SPEL表达式,引入自定义的权限校验。原创 2023-07-29 16:57:34 · 2069 阅读 · 1 评论 -
【业务功能篇59】Springboot + Spring Security 权限管理 【下篇】
我们需要自定义一个登陆接口,并让SpringSecurity不要对该接口进行登录验证,以允许未登录用户访问。在该接口中,我们使用AuthenticationManager的authenticate方法进行用户认证,需要在SecurityConfig中配置将AuthenticationManager注入到容器中。如果认证成功,则需要生成一个jwt并将其放入响应中返回。为了让用户在下次请求时能够通过jwt识别出具体的用户,我们需要将用户信息存储在redis中,可以将用户id作为key。原创 2023-07-29 15:39:37 · 1017 阅读 · 0 评论 -
【业务功能篇58】Springboot + Spring Security 权限管理 【中篇】
通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功)互联网中的认证用户名密码登录邮箱发送登录链接手机号接收验证码只要你能收到邮箱/验证码,就默认你是账号的主人什么是JWTJWT是一种基于 Token 的****认证授权机制JWT (JSON Web Token) 是目前最流行的跨域认证解决方案,是一种基于 Token 的认证授权机制。原创 2023-07-29 11:14:39 · 1649 阅读 · 0 评论 -
【业务功能篇57】Springboot + Spring Security 权限管理 【上篇】
1) Spring Security 是 Spring 家族中的一个安全管理框架,可以轻松地与 Spring 应用程序集成, 它提供了一系列的安全服务和工具,用于保护企业应用程序的安全性。Spring Security 提供了许多功能,包括身份验证(Authentication)、授权(Authorization)、访问控制、密码管理、单点登录(Single Sign-On)、攻击防范(如跨站点脚本攻击、SQL注入攻击)等。2) 认证和授权也是SpringSecurity作为安全框架的核心功能。原创 2023-07-28 15:36:02 · 3539 阅读 · 0 评论 -
【业务功能篇54】Springboot项目常用工具类:HTTP状态码/客户端request
【代码】【业务功能篇54】Springboot项目常用工具类:HTTP状态码/客户端request。原创 2023-07-27 17:21:46 · 403 阅读 · 0 评论 -
【业务功能篇53】Springboot 数据封装对象
的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载。一般情况下DTO类比实体类具有更多或者更少的字段。对应数据库的id,name,birthday等等字段,在CRUD中都会频繁用到。的设计模式,原来的目的是为了。原创 2023-07-27 17:00:10 · 590 阅读 · 0 评论 -
【业务功能篇52】Springboot+mybatis mysql开启批量执行sql参数 allowMultiQueries=true
在application-xxx.xml配置文件中,配置数据库的信息。原创 2023-07-26 11:41:42 · 3891 阅读 · 0 评论 -
【业务功能篇51】对象复制的三种方式 工具类Orika、反射、BeanUtils浅拷贝
业务场景: 设计规范前提下,我们数据层传输承载的是用DTO,而到控制层返回给前端会对应定义一个VO对象,比如是一个问题单数据集合list,数据层接收的是DTO对对象,到控制层接收后需要转换成list,这里就涉及到要转换对象数据对象复制的类库工具有很多Orika,同时也最流行的对象映射工具,Orika底层采用了javassist类库生成Bean映射的字节码,之后直接加载执行生成的字节码文件,在速度上比使用反射进行赋值会快很多。阿里巴巴开发手册上强制规定避免使用。原创 2023-07-25 17:42:17 · 585 阅读 · 0 评论 -
【业务功能篇50】ObjectMapper-将java对象转为json字符串
ObjectMapper可以实现Java对象和json字符串间互相转换,我们经常用到的是它的J。这里目的是。原创 2023-07-25 11:12:48 · 863 阅读 · 0 评论 -
【业务功能篇49】Springboot+EasyPoi 实现Excel 带图片列的导入导出
SpringBoot整合EasyPoi实现Excel的导入和导出(带图片)_51CTO博客_springboot easypoi导出excel原创 2023-07-20 16:24:13 · 777 阅读 · 0 评论