- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 简单AES加解密Demo——带你了解AES
AES的全称是Advanced Encryption Standard,意思是高级加密标准。它的出现主要是为了取代DES加密算法的,因为我们都知道DES算法的密钥长度是56Bit,因此算法的理论安全强度是2的56次方。但二十世纪中后期正是计算机飞速发展的阶段,元器件制造工艺的进步使得计算机的处理能力越来越强,虽然出现了3DES的加密方法,但由于它的加密时间是DES算法的3倍多,64Bit的分组大小相对较小,所以还是不能满足人们对安全性的要求。
2023-06-07 15:13:18
2138
原创 超全的FastJson应用之各种类型转换
在日常开发中,会经常遇到Json和各种类型的互转,今天就总结下能想到的所有转换。无先后顺序,想到什么写什么。新建一个实体类后面展示会用到。为了偷懒用了lombok,数据也都是瞎写的,不要纠结。@Data@Component常用的Json转换已经罗列出来了,大家也可以自己补充一些,作为日常开发中的应用小结。手码不易,点点关注。
2023-03-23 10:54:25
2844
原创 分享后端解决跨域问题的三种方案
跨源资源共享(,跨源资源共享,或通俗地译为跨域资源共享)是一种基于 HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其它源(域、协议或端口),使得浏览器允许这些源访问加载自己的资源。跨源资源共享还通过一种机制来检查服务器是否会允许要发送的真实请求,该机制通过浏览器发起一个到服务器托管的跨源资源的“预检”请求。在预检中,浏览器发送的头中标示有 HTTP 方法和真实请求中会用到的头。
2023-02-26 20:14:48
12460
原创 关于Util包下的Properties类
近期在工作中遇到使用Properties类进行IO读写配置文件的情况,于是乎对此类有了兴趣,在网上一通学习后,来这里总结下。我们先来看下部分源码/***/可以看到这个类继承自HashTable,当然也实现了Map接口,所以他可以当做一个Map来使用,而且还是一个双列集合,其中的k,v都是字符串类型。我们来举例演示下Properties的集合属性@Test我们看下输出的结果可以看到集合中是以key-value的形式存放的。
2023-01-12 14:59:16
219
原创 关于MySQL触发器
触发器(Trigger)是 MySQL 中非常实用的一个功能,事实上其他DBMS也有触发器功能。数据库它可以在操作者对表进行「增删改」 之前(或之后)被触发,自动执行一段事先写好的 SQL 代码。BEFORE INSERT_在插入数据前,实现触发功能。可以检测插入数据是否符合业务逻辑,如不符合返回错误信息等等。AFTER INSERT_在插入数据之后,实现触发功能。可以用于表中数据增加后,去另一张关联表中进行操作等等。
2022-12-20 09:41:38
401
原创 银行业务系统划分
主要有结算业务(国内、国外,主要为支付相关,比如国内的二代支付、网银互联、全球的swift、西联)、信用证业务(商业贸易用的比较多,进出口等)、信托业务(一种委托业务)、租赁业务(融资性租赁、操作性租赁等)、代理业务(代收款项、比如水电煤等)、银行卡业务(信用卡、支票卡、记账卡等)、咨询业务、担保业务等。2.贷款业务本身银行有信贷系统的,贷款业务属于比较繁琐,有贷前调查、贷中审批、贷后追踪等,从业务逻辑来讲环节较多、当然安全系数也高,现在的小微贷款感觉有时候风险太高了(不过要用发展的眼光去看)。
2022-10-21 09:50:29
3324
转载 什么是前置机?
这个时候,他们要求你或者他们自己开发一个软件,运行在他们的内网,然后通过专线或硬件隔离技术将运行这个软件的计算机连接到你的外网系统上,那么运行这个软件的计算机,从功能上称呼为前置机。它还起着管理和调度前台所发起的交易作用,经过前置机的调度,可以减轻后台服务器的负担,并且有时在客户端和后台服务器间起着防火墙的作用。实际上在现在的应用中,由于有了前置机的存在,主机变得不可见。它一般起着管理和调度业务渠道发起的交易的作用,经过前置机的调用可以减轻核心后台服务器的负担,当然了它也有非核心业务的处理功能。
2022-10-21 09:35:54
4198
原创 初识ElasticSearch
Elasticsearch 是什么?| Elastic简单来说,我们的目标是帮助每个人更快地找到所需内容,从需要通过内网获取文档的员工,到在网上购物寻找适合自己鞋子的客户。但从更技术的角度来说,大致描述如下:Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。
2022-10-04 14:33:17
503
原创 轻量级ESB——Mule
关于ESB(Enterprise Service Bus)企业服务总线,它是一种集成企业不同应用和不同系统的中介,它既为这些应用提供服务,同时也管理这些应用。而Mule就是一种轻量级的ESB,它的特点是有很高的扩展性,允许从小规模开始,并随着时间的推移连接更多的应用程序。关于SOA(Service Orentied Architecture)面向服务架构,是企业通过服务整合来完成系统集成的一种思想,它并不是一种技术,而ESB就是从SOA的思想上发展而来的。3面向事件驱动架构:应用之间异步的产生和接收消息。
2022-09-25 09:43:17
701
原创 Redis强化技术
随着企业公司、用人单位对Java工程师技能要求的不断提高和变化,Redis缓存技术的掌握变得越来越强,从各大招聘平台企业发布的招聘信息来看,要求熟练掌握Redis技术的企业占到了百分之90以上,Redis关键字也仅排在Java、Spring、Mysql之后。可见其举足轻重的地位。
2022-09-05 14:37:57
249
原创 Mybatis分页框架(插件)——PageHelper
MyBatis 分页插件 PageHelper如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。以上是PageHelper官网地址和首页的截图,网站上面有详细的官方文档,以及使用步骤等等,不做过多赘述。我们只需要知道PageHelper是一款非常优秀的Mybatis分页开源框架,它支持十多种主流数据库。...
2022-08-31 15:16:55
901
原创 关于Redis持久化
众所周知,Redis是一款C语言编写,类似键值对Key-Value的NoSQL非关系型数据库。它的工作区域是我们计算机的内存中,那么它也面临着和内存一样的困扰,断电即消失,不能长久存储。针对这个问题,Redis提出了两套解决方案。下面我们就来介绍这两种解决方案。...
2022-08-30 11:28:36
271
原创 基于Linux系统部署Redis Cluster集群
Redis Cluster是一个提供在多个 Redis 节点间共享数据的程序集。Redis 集群的优势:1.可以是多主多从结构2. 自带主从切换,不需要哨兵服务3. 使用“哈希槽”算法Redis 集群有 16384 个哈希槽,每个 key 通过 CRC16 校验后对 16384 取模来决定放置哪个槽,集群的每个节点负责一部分 hash 槽。......
2022-08-26 15:29:45
882
1
原创 关于Seata
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。是阿里的产品,官网:SeataSeata官网也是Spring Cloud Alibaba提供的组件。
2022-08-25 14:24:53
3682
原创 关于微服务下的负载均衡
在高并发的访问下,单一服务器性能不足以满足正常需求,我们往往会引入分布式集群服务器来提高服务质量,提高网站整体性能。那么,这时一个请求到这个服务,就需要确定访问哪一个服务器。在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。Dubbo框架内部支持负载均衡算法,能够尽可能的让请求在相对空闲的服务器上运行。在不同的项目中,可能选用不同的负载均衡策略,以达到最好效果。
2022-08-24 14:20:30
1804
原创 关于Dubbo
RPC是Remote Procedure Call的缩写 翻译为:远程过程调用目标是为了实现两台(多台)计算机\服务器,相互调用方法\通信的解决方案RPC只是实现远程调用的一套标准该标准主要规定了两部分内容。
2022-08-24 09:16:05
660
原创 关于Nacos
这种方法实际上只是为了简便大家启动nacos的操作,还是需要掌握命令行的启动方式。Idea实际上支持我们更加方便的启动Nacos。之前我们启动Nacos都是使用dos命令行。Nacos就会出现在idea的启动选项中了。启动过程比较复杂,命令比较长。
2022-08-23 09:18:54
613
原创 SpringJDBC
编码,用起来非常方便Spring JDBC -- 适用于小的轻量级的项目是轻量级的框架,实际上就是对传统JDBC的简单封装,提供了对异常的处理,执行效率和传统JDBC。总之:程序员只需要调用该类中的方法即可完成相对应的操作,不用再写模板代码,不用考虑模板代码中的异常处理,操作方便了很多。如果依赖了spring-boot-starter-jdbc。中获取连接对象,看是否获取成功,若能获取成功连接对象,则该模板类可以使用。导入spring-boot-starter-jdbc。导入数据库驱动的依赖。
2022-08-21 16:56:27
1679
1
原创 微服务下实现单点登录(SSO)的几种方式
随着互联网的飞速发展和移动终端的广泛普及,互联网用户的体量越来越大,日活几亿的app层出不穷,无论是互联网服务还是app服务,对于服务器的高并发要求越来越高,服务器高性能、高可用越来越重要,所以分布式微服务架构开发的项目越来越多。我们往往会用多台服务器去部署不同的业务模块,比如电商项目中,可能购物车系统、订单系统、视频种草模块、秒杀系统等等都会在不同的服务器单独部署,微服务项目的优势主要体现在:1.高并发:很多人同时访问这个服务器,由于不同模块分布在不同服务器,单个服务器只需要运行单一功能模块。
2022-08-19 18:41:38
2998
原创 关于SpringMVC拦截器
过滤器是最早接收到客户端请求的组件,是执行在所有组件之前的,而拦截器是执行在Spring MVC的控制器(过滤器只能配置“黑名单”,不可以配置“白名单”,所以,使用时并不是那么方便,而拦截器的配置更加灵活!时表示“阻止”,当阻止时,程序不会向后继续运行,例如控制器将不会执行。一旦使用通配符,可能导致匹配的范围过大,例如:配置为。后才可以生效,在Spring MVC的配置类(实现了。)作为通配符,但是,只能匹配1层路径,例如:使用。等,如果此拦截器是用于验证“是否登录”的,将。在配置拦截路径时,还可以调用。.
2022-08-16 09:16:16
298
原创 一起聊一聊——Redis缓存入门
但是伴随着用户数的增长,并发读写数据库增多,会加大数据库访问压力,每一次的读写查询,都需要经过数据库的审查SQL语句等环节,导致性能的大幅下降,严重时直接导致系统宕机。我们急需要一个能够处理反复高频的热门数据的简单存储机构,它不用像关系型数据库那么大的体量,只需要把部分热门数据拦截在操作数据库之前。我们自动装配的就是Redis的API,其中Key是字符串类型,而Value可以是任意类型,比如Object,这里我们使用Serializable接口类型来指代实现了这个接口的类型。中添加任何配置就可以直接编程。.
2022-08-15 19:07:24
368
2
原创 每日面试题分享——京JD东面试题分享
即使不可达,对象也不一定会被垃圾收集器回收,1)先判断对象是否有必要执行 finalize()方法,对象必须重写 finalize()方法且没有被运行过。2)若有必要执行,会把对象放到一个 队列中,JVM 会开一个线程去回收它们,这是对象最后一次可以逃逸清理的机会.代理是一种常用的设计模式,目的是:为其他对象提供一个代理以控制对某个对象的访问,而人类要表示的符号太多,无法用一个字节来完全表示,固需要将符号编码,将各种语言翻。动态代理代理的是一个接口。2)方法区中的类静态属性引用的对象,常量引用的对象;...
2022-08-12 23:07:18
105
原创 2.自定义配置类——SpringSecurity
当前Java Web项目中主流的开发模式是前后端分离的模式,而Spring Security默认的登录是由Security框架提供的页面的表单来输入用户名、密码,且由Security框架自动处理登录流程,不适合我们前后端开发的模式,我们后端需要自己开发相关验证登录流程,我们在开发测试时需要对Security 进行初始配置!riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法,我们往往在开发中将此验证关闭。的认证方式相比传统的。...
2022-08-12 16:32:13
1668
原创 关于SpringMVC中的统一处理异常机制
Getter}}自定义一个返回值类型类JsonResult@Data/*** 业务状态码*//*** 消息*//*** 数据*/}}}}}@Slf4jlog.debug("创建统一处理异常的类:GlobalExceptionHandler");}log.debug("处理ServiceException:{}", e.getMessage());}
2022-08-11 09:54:58
294
原创 JVM ——之内存增强分析
我们可以看到这段代码和上面不同的是,StringBuffer这个对象,并没有外部的引用或指向,只是在方法内部构建完成后,返回的是String类型的对象,所以StringBuffer就是未发生逃逸的对象,它就会被分配在栈内存,而不是堆内存中,当然这只是举个例子,并不是实际中的应用。我们需要掌握的是这种思想,当我们编写代码,或者优化代码时,要尽可能的考虑到逃逸问题,因为分配在栈内存中的对象,方法结束后会自动销毁,无需调用GC,可以极大的提高系统的性能。开发中能在方法内部应用对象的,就尽量控制在内部。...
2022-08-10 13:56:41
288
原创 1.初始认证授权框架——Spring Security
使用Spring Security时,应该自定义类,实现接口,在此接口中,有方法,Spring Security会自动使用登录时输入的用户名来调用此方法,此方法返回的结果中应该包含与用户名匹配的相关信息,例如密码等,接下来,Spring Security会自动使用自动装配的密码编码器对密码进行验证。@Service@Overridelog.debug("根据用户名{}从数据库查询用户信息……", s);// 调用AdminMapper对象,根据用户名(参数值)查询管理员信息。...
2022-08-09 14:15:28
386
原创 SpringAOP初识——初学者向
有需要的小伙伴可以自行跳转。下面,我们今天来一起学习下SpringAOP相关的知识点。SpringAOP的英文全称是——(Aspect-Oriented Programming)面向切片编程,切片的理解大家可以想象一下切片面包,一个面包整体就是我们的项目,而把面包从业务的角度切成一片一片的,这些切片就是我们的业务。...
2022-08-07 16:05:41
5384
原创 JVM中的类加载过程分析——1.初识类加载步骤
说明:验证阶段是非常重要的,但不是必须的,它对程序运行期没有影响,如果所引用。1) 文件格式的验证(魔数,版本号,常量池,访问标志,当前类索引,另外,一个已经加载的类被卸载的几率很小,至少被卸载的时间是不确定的,假如需要。解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程,此阶段为类加载的最后一个阶段,这个阶段的 JVM。将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。加载、验证、准备和初始化发生的顺序是确定的,而解析阶段则不一定。文件的字节流中包含的信息符合当前虚拟机的要求,...
2022-08-06 11:22:44
215
原创 JVM中的类加载过程分析——2.初识类加载方式
我们带着这3个问题去认识我们Java中的类加载器,平时你是感觉不到它的存在的,但是它又确实是存在而且不可或缺的。如果没有它,我们的类就无法正常运行加载。我们观察以下代码:static{}}//通过类型定义变量clsA 观察是否加载ClassA}}我们可以看到没有任何控制台输出,也就证明是没有加载ClassA这个类的。.........
2022-08-06 11:05:22
361
原创 JVM相关工具的使用——JvisualVM
JVisualVM 是 JDK 自带的内存及性能检测工具,路径在%JAVA_HOME%/bin 下面。双击 jvisualvm.exe 或者 win + R 输入 cmd,然后进入命令行界面,再输入 jvisualvm即可打开软件。
2022-08-05 09:58:54
2103
原创 关于RESTful风格——初学者向
RESTFUL特点包括:1、每一个URI代表1种资源;2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;3、通过操作资源的表现形式来操作资源;4、资源的表现形式是XML或者HTML;5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。...
2022-08-03 09:46:24
190
原创 浅谈MyBatis的动态SQL--foreach
根据参数值的不同,将生成不同的SQL语句。它是由Mybatis提供的一个功能标签。 假设现在我们存在一个需求:客户一次勾选购物车中的多个商品,然后从购物车中清除这些勾选项。我们该怎么实现呢? 那么需要执行的SQL语句大致是: 但是我们怎么知道客户要选择哪些商品对应的id呢?这就引出了动态SQL的必要性。 由于我们要在SQL语句中添加多个参数,而且这些参数还是客户传输给服务器的,我们并不能写死它们。那么我们的Mapper层该如何定
2022-08-02 15:42:56
454
转载 Redis常见面试问题分析
说说你对Redis的了解?Redis(Remote Dictionary Server)是一个基于C语言编写的内存数据库,基于Key/Value结构存储数据,读写速度很快,一般会用来做缓存、消息队列,分布式锁,同时还支持事务 、持久化、集群等。说说Redis中的数据类型?常见的有五种基本数据类型和三种特殊数据类型,基本数据结构:String、 list、set、zset和hash,三种特殊数据类型:位图(bitmaps) 、计数器(hyperloglogs)和地理空间(geospatial indexe
2022-08-02 13:57:15
81
原创 这把小刀怎么用——详解Knife4j框架
Knife4j是为JavaMVC框架集成Swagger生成在线Api文档的增强解决方案,其前身是swagger-bootstrap-ui,此框架还有调试功能,可以向服务器端发送请求,并获取响应结果。简单的说就是帮我们自动生成了文档注解,而且可以直接在图形化界面中向服务器发起请求,便于调试。...
2022-08-01 20:15:24
1850
原创 怎么理解Spring IOC——适合初学者
保存着你整个项目里面,所有类的对象。Bean对象的获取我们在Test类中获取上下文对象ApplicationContext,这里上下文对象大家可以理解为,它是维护那些Bean对象的一个高级接口,就是它里面有很多的方法可以供我们去打点调用。那么这时我们的T和A这两个类就已经交给Spring去管理了,这里注意@Bean是作用在方法上方的,方法的返回值就是分别返回一个T和A的对象。在接触SpringIOC之前,我们在创建对象时,是哪里使用哪里创建,需要一个创建一个,将来可能创建很多的对象。............
2022-08-01 14:51:15
178
原创 学习分享——Spring validation验证框架
在我们创建Springboot项目时,可以在开始时添加很多依赖项,勾选几个复选框就可以完成依赖的添加,这些依赖中的框架可以极大地提高我们的开发效率,简直是老6一般的存在。在做web项目开发时,我们经常会苦于去写各种分支判断去验证客户端发过来的request请求是否符合我们的业务标准及要求,各种正则表达式会让你累感不爱。那么请记住在java中只要你觉得繁琐重复的代码,一定有大佬帮你写好了!!!!!@Validated注解,表示此参数是需要通过SpringValidation进行检查的和。......
2022-08-01 10:57:47
1591
转载 JAVA 初级程序员常见问题分析
1、怎么样可以尽快拿到offer?针对心仪的企业、岗位进行调查。可以上招聘网站看看其岗位要求,以及企业的面试题。然后针对性的学习其要求的技术。这样有针对性的准备,投其所好,就可更快的获取你象要的offer。2、程序员学什么会在公司待遇高?虚实结合。什么是虚的,就是市场热点,是企业希望你未来的技能。什么是实的,就是能解决企业开发过程中的问题的技术。目前市场热点技术就是大数据、人工智能;目前企业实在的技术就是互联网架构技术,具体包括:三大框架企业级架构、分布式架构、微服务架构、开发运维一体化架构...
2022-07-31 14:02:58
225
2022最新Java面试题及答案总结
2022-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人