51CTO首页
AI.x社区
博客
学堂
精品班
软考社区
免费课
企业培训
鸿蒙开发者社区
信创认证
公众号矩阵
移动端
视频课
免费课
排行榜
短视频
直播课
软考学堂
全部课程
软考
信创认证
华为认证
厂商认证
IT技术
PMP项目管理
免费题库
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO软考
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
51CTO软考题库
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方库
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
社区规则
意见反馈
社区活动
默认
发布时间
热度
原创
精华
热门标签
harmony
纯血
harmonyos
Spring Boot 整合多数据源,这才叫优雅~(一)
大家好,我是不才陈某大约在19年的这个时候,老同事公司在做医疗系统,需要和HIS系统对接一些信息,比如患者、医护、医嘱、科室等信息。但是起初并不知道如何与HIS无缝对接,于是向我取经。最终经过讨论采用了视图对接的方式,大致就是HIS系统提供视图,他们进行对接。写这篇文章的目的这篇文章将会涉及到SpringBoot与Mybatis、数据库整合,类似于整合Mybatis与数据库的文章其实网上很多,作者此前也写过一篇文章详细的介绍了一...
love374
0回复
9219浏览
Spring Boot
3 个注解,优雅的实现微服务鉴权(二)
2.定义三个注解经过第①步,鉴权已经下放给下游服务了,那么下游服务如何进行拦截鉴权呢?其实SpringSecurity提供了3个注解用于控制权限,如下:SecuredPreAuthorizePostAuthorize关于这三个注解就不再详细介绍了,有兴趣的可以去查阅官方文档。陈某这里并不打算使用的内置的三个注解实现,而是自定义了三个注解,如下:1.RequiresLogin见名知意,只有用户登录才能放行,代码如下:author公众号:码猿技术专栏url:www.javafamil...
love374
0回复
6514浏览
微服务
3 个注解,优雅的实现微服务鉴权(三)
3.注解切面定义注解有了,那么如何去拦截呢?这里陈某定义了一个切面进行拦截,关键代码如下:author公众号:码猿技术专栏url:www.javafamily.cndescriptionRequiresLogin,RequiresPermissions,RequiresRoles注解的切面AspectComponentpublicclassPreAuthorizeAspect{构建publicPreAuthorizeAspect(){}定义AOP签名(切入所有使用鉴权注解的方法)publicstaticfinalStringPOINTCUTSIGN"annotation(com.mugu.blog.common.annotati...
love374
0回复
7212浏览
微服务
聊聊 Sharding-JDBC 数据脱敏(三)
数据如下:可以看到数据持久化到数据库中已经脱敏了。问题来了:那么查询的效果出来的效果是什么?试想一下,MD5加密器是不可逆的,AES加密器是可逆的,那么符合正常逻辑的状态下就应该是密码这个字段查询出来的还是密文(不可逆),身份证、手机号查询出来的应该是明文。新建查询的单元测试,如下:TestpublicvoidtestList()throwsJsonProcessingException{List<User>usersuserMapper.listAll();ObjectMapperobjectMappernewOb...
love374
0回复
7279浏览
Sharding
Spring Boot 整合多数据源,这才叫优雅~(二)
因此我们在自定义的配置类中定义如下配置即可:Bean:向IOC容器中注入一个BeanConfigurationProperties:使得配置文件中以spring.datasource为前缀的属性映射到Bean的属性中returnConfigurationProperties(prefix"spring.datasource")BeanpublicDataSourcedataSource(){做一些其他的自定义配置,比如密码加密等......returnnewDruidDataSource();}“以上介绍了两种数据源的配置方式,第一种比较简单,第二种适合扩展,按需选择...
love374
0回复
1.1w浏览
Spring Boot
一次倒在LRU上的经历(二)
哈希+双链表上面我们已经知道用哈希能够直接查到有木有这个元素,但是苦于删除!用List都很费力。更详细的说,是苦于List的删除操作,Map的删除插入还是很高效的。在上面这种情况,我们希望的就是能够快速删除List中任意一个元素,并且效率很高,如果借助哈希只能最多定位到,但是无法删除啊!该怎么办呢?哈希+双链表啊!我们将keyval的数据存到一个Node类中,然后每个Node知道左右节点,在插入链表的时候直接存入Map中,这样M...
joytrian
0回复
7310浏览
算法
Android 全新声明式 UI 开发框架 weiV ,给 View 系统插上翅膀
当下,我正在基于View系统为Android开发一款全新的声明式UI框架weiV。它具有以下优势:1.声明式的UI写法让原生开发效率翻倍2.达到或超越View系统的性能我将我的FlutterConstraintLayout移植到Android,依托它先进的布局算法,在不引入固有特性测量的情况下,让View树中的子元素在任何情况都只会被layout一次,使得任意嵌套不会引起性能问题。即便View树中的每个层级宽高都是wrapcontent和matchparent混用。同时,xml将被抛弃。3...
xbkong
0回复
7059浏览
weiV
必须干掉这10道,面试100%遇到!(四)
0X08TOPK问题TOPK问题真的非常经典,通常问的有最小的K个数,寻找第K大都是TOPK这种问题,这里就用力扣215寻找数组第K大元素作为板子。详细分析:一文拿捏TOPKTOPK的问题解决思路有很多,如果优化的冒泡或者简单选择排序,时间复杂度为O(nk),使用优化的堆排序为O(n+klogn),不过掌握快排的变形就可以应付大体上的所有问题了(面试官要是让你手写堆排序那真是有点难为你了)。快排每次确定一个数pivot位置,将数分成两部分:左面的...
joytrian
0回复
6572浏览
算法
动态规划,它来了(三)
最长公共子序列最长公共子序列也成为LCS.出现频率非常高!给定两个字符串text1和text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列,返回0。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace"是"abcde"的子序列,但"aec"不是"abcde"的子序列。两个字符串的公共子序列是这两个字符串所共同拥有的...
joytrian
0回复
7309浏览
算法
weiV 优雅的支持 Java 并运行起来了
weiV(发音同wave)wave.webpif("weiV""View".reversed()){Log.d("weiV","它意味着控制反转,你始终应该直接操作UI的描述Widget而不是直接操作View。")}它具有以下优势:1.声明式的UI写法让原生开发效率翻倍2.达到或超越View系统的性能1.我将我的FlutterConstraintLayout移植到Android,依托它先进的布局算法,在不引入固有特性测量的情况下,让View树中的子元素在任何情况都只会被layout一次,使得任意嵌套不会引起性能问题。...
xbkong
0回复
7181浏览
weiV
Flutter ConstraintLayout 1.6 发布,带来了创新的开放式语法
说明开放式语法是我发明的新词,它是啥意思呢?我们看看代码就明白了。classOpenGrammarExampleextendsStatelessWidget{constOpenGrammarExample({Keykey}):super(key:key);overrideWidgetbuild(BuildContextcontext){returnScaffold(body:ConstraintLayout().open((){if(DateTime.now().millisecond%20){Container(color:Colors.red,).applyConstraint(size:200,centerTo:parent,);}else{Container(color:Colors.yellow,).appl...
xbkong
0回复
8459浏览
Flutter
ConstraintLayout
weiV
必须干掉这10道,面试100%遇到!(三)
0X05二叉树层序(锯齿)遍历二叉树的遍历,对应力扣102,107,103.详细分析:一次面试,被二叉树层序遍历打爆了如果普通二叉树层序遍历,也不是什么困难的问题,但是它会有个分层返回结果的操作,就需要你详细考虑了。很多人会用两个容器(队列)进行分层的操作,这里其实可以直接使用一个队列,我们首先记录枚举前队列大小len,然后根据这个大小len去枚举遍历就可以得到完整的该层数据了。还有一个难点就是二叉树的锯齿层序(也叫之...
joytrian
0回复
6895浏览
算法
动态规划,它来了(二)
最长递增子序列最长递增子序列,也称为LIS,是出现非常高频的动态规划算法之一。这里对应力扣300给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。输入:nums[0,1,0,3,2,3]输出:4解释:最长递增子序列是[0,1,2,3],因此长度为4。对于最长递增子序列,如果不考虑动态规划的方法,使...
joytrian
0回复
5431浏览
算法
必须干掉这10道,面试100%遇到!(二)
0X03环形链表对应力扣141和力扣142,力扣141环形链表要求为:给定一个链表,判断链表中是否有环,用O(1)内存解决。详细分析:环形链表找入口,真的太妙了这个问题利用快慢双指针比较高效,快指针fast每次走2步,slow每次走1步,慢指针走n步到尾时候快指针走了2n步,而环的大小一定小于等于n所以一定会相遇,如果相遇那么说明有环,如果不相遇fast先为null说明无环。具体代码为:publicclassSolution{publicbooleanhasCycle(List...
joytrian
0回复
7394浏览
算法
必须干掉这10道,面试100%遇到!(一)
大家好,我是bigsai,好久不见,天天想念。最近不少小伙伴跟我交流刷题肿么刷,我给的建议就是先剑指offer和力扣hot100,在这些题中还有些重要程度和出现频率是非常非常高的,今天给大家分享当今出现频率最高的10道算法题,最近铺天盖地的出现,学到就是赚到。本篇主要内容为:0X01翻转链表力扣206和剑指offer24原题,题意为:给你单链表的头节点head,请你反转链表,并返回反转后的链表。分析:翻转链表,本意是不创建新的链表...
joytrian
0回复
6051浏览
算法
最小生成树,秒懂!(二)
代码实现上面分析了逻辑实现。下面我们用代码简单实现上述的算法。primpackage图论;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Comparator;importjava.util.List;importjava.util.PriorityQueue;importjava.util.Queue;publicclassprim{publicstaticvoidmain(String[]args){intminlength0;最小生成树的最短路径长度intmax66666;Stringcityname[]{"北京","武汉","南京","上海","杭州","广州","深圳"};in...
joytrian
0回复
6778浏览
算法
字节一次面试,被二叉树的层序遍历捏爆了!
前言大家好,我是bigsai。在数据结构与算法中,二叉树无论是考研、笔试都是非常高频的考点内容,在二叉树中,二叉树的遍历又是非常重要的知识点,有个小老弟说他字节面试时候二叉树之字形打印紧张没写出来,力扣原题自己还写过很懊恼,我也回想起自己刚学习时候那段"混乱的"斗争,今天给大家讲讲二叉树的层序遍历。前面介绍了二叉排序树的构造和基本方法的实现,遍历也是比较重要的一环,并且二叉树的层序遍历也是bfs的最简单情...
joytrian
0回复
8624浏览
算法
二叉树各种遍历真的很难?大sai带你拿捏!(一)
前言大家好,我是bigsai,好久不见,甚是想念!今天带大家征服二叉树的前中后序遍历,包含递归和非递归方式,学到就是赚到!很多时候我们需要使用非递归的方式实现二叉树的遍历,非递归枚举相比递归方式的难度要高出一些,效率一般会高一些,并且前中后序枚举的难度呈一个递增的形式,非递归方式的枚举有人停在非递归后序,有人停在非递归中序,有人停在非递归前序(这就有点拉胯了啊兄弟)。我们回顾递归,它底层其实是维护一个...
joytrian
0回复
6983浏览
算法
这个树,怎么一下就平衡了?(三)
代码实现首先对于节点多个height属性。用于计算高度(平衡因子)插入是递归插入,递归是一个来回的过程,去的过程进行插入,回的过程进行高度更新,和检查是否平衡。推荐不要写全局递归计算高度,效率太低下,事实上高度变化只和插入和平衡有关,仔细考虑即不会有疏漏!代码写的比较早,如有命名不规范的情况,还请勿喷,如果有疏漏还请指出!importjava.util.ArrayDeque;importjava.util.Queue;publicclassAVLTree{classnode{int...
joytrian
0回复
6826浏览
算法
这个树,怎么一下就平衡了?(二)
四种不平衡情况处理针对四种不平衡的情况,这里对每种情况进行详细的讲解。RR平衡旋转(左单旋转)这里的RR指的是节点模型的样子,其含义是需要左单旋转(记忆时候需要注意一下RR不是右旋转)!出现这种情况的原因是节点的右侧的右侧较深这时候不平衡节点需要左旋,再细看过程。在左旋的过程中,root(oldroot)节点下沉,中间节点(newroot)上浮.而其中中间节点(newroot)的右侧依然不变。它上浮左侧所以需要指向根节点(oldroot)(毕竟...
joytrian
0回复
7350浏览
算法
暂无内容
1
19
20
21
22
23
24
25
26
27
67
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅