Ricadro


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

Adapter 模式

发表于 2019-04-08 | 分类于 设计模式 | | 阅读次数:
字数统计: 507字 | 阅读时长 ≈ 1分钟

说明

  • 最近在开发时,学习到了一种新的设计模式:Adapter 模式,即适配器模式,所以在此总结一下自己对于适配器模式的想法。

模式简介

由于对接了许多第三方支付,所以会有很多类似于绑卡,转账等与第三方操作的情况是可以复用的,则可以通过适配器来完成绑卡,转账来实现复用,避免代码冗余。

adapter
这里借用图解设计模式一书中 Adapter 模式的示例图来举例,🔌为订单模块,插板为第三方系统,而我们要做的就是做一个中间的适配器,来将各种第三方的特有订单进行处理。

阅读全文 »

项目由 SSM 迁移到 SpringBoot 过程(二)

发表于 2019-03-29 | 分类于 日常问题 | | 阅读次数:
字数统计: 450字 | 阅读时长 ≈ 1分钟

踩坑之路

  • 配置好 shiro 之后,会报下面这样一个异常.

    No realms have been configured! One or more realms must be present

  • 检查代码之后,发现没有问题啊,已经配置了相应的 realm 加到 Spring 的 IOC 容器了,然后重新去看了一下 shiro 流程,如下图所示。
    shiro

流程如下:

  • 1、首先调用Subject.login(token)进行登录,其会自动委托给Security Manager,调用之前必须通过SecurityUtils. setSecurityManager()设置;
  • 2、SecurityManager负责真正的身份验证逻辑;它会委托给Authenticator进行身份验证;
  • 3、Authenticator才是真正的身份验证者,Shiro API中核心的身份认证入口点,此处可以自定义插入自己的实现;
阅读全文 »

项目由 SSM 迁移到 SpringBoot 过程(一)

发表于 2019-03-28 | 分类于 日常问题 | | 阅读次数:
字数统计: 559字 | 阅读时长 ≈ 2分钟

说明

  • 最近在把一个 SSM 框架的仓库管理系统迁移到 SpringBoot 上,踩坑无数,最终都顺利解决,记录一下愉快的踩坑历程。

技术栈

技术 说明 官网
Spring Boot 容器+MVC框架 https://spring.io/projects/spring-boot
Shiro 认证和授权框架 http://shiro.apache.org/
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
PageHelper MyBatis物理分页插件 http://git.oschina.net/free/Mybatis_PageHelper
Swagger-UI 文档生产工具 https://github.com/swagger-api/swagger-ui
Druid 数据库连接池 https://github.com/alibaba/druid
Lombok 简化对象封装工具 https://github.com/rzwitserloot/lombok
阅读全文 »

栈的压入、弹出序列

发表于 2019-03-26 | 分类于 剑指offer | | 阅读次数:
字数统计: 342字 | 阅读时长 ≈ 1分钟

题目描述

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)

解题思路

  • 使用一个栈来辅助压入弹出。
  • 如果下一个弹出的数字刚好是栈顶数字,那么直接弹出。
  • 如果下一个弹出的数字不在栈顶,我们把压栈序列中还没有入栈的数字压入辅助栈,直到把下一个需要弹出的数字压入栈顶为止。
  • 如果所有的数字都压入栈了仍然没有找到下一个弹出的数字,那么该序列不可能是一个弹出序列。
阅读全文 »

包含 min 函数的栈

发表于 2019-03-24 | 分类于 剑指offer | | 阅读次数:
字数统计: 181字 | 阅读时长 ≈ 1分钟

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数(时间复杂度应为O(1))。

解题思路

  • 维护两个栈,其中一个为全量数据栈,其中一个仅放最小元素,每次入栈时与已有的元素比较,根据实际情况存放即可。(以空间换时间)
阅读全文 »

顺时针打印矩阵

发表于 2019-03-19 | 分类于 剑指offer | | 阅读次数:
字数统计: 255字 | 阅读时长 ≈ 1分钟

题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
矩形

解题思路

  • 打印矩阵时,为一圈一圈打印,保证每一行每一列终点均大于等于起点即可。
阅读全文 »

二叉树的镜像

发表于 2019-03-18 | 分类于 剑指offer | | 阅读次数:
字数统计: 142字 | 阅读时长 ≈ 1分钟

题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。

输入描述

输入

阅读全文 »

树的子结构

发表于 2019-03-10 | 分类于 剑指offer | | 阅读次数:
字数统计: 191字 | 阅读时长 ≈ 1分钟

题目描述

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

解题思路

  • 首先在A中需找到一个结点C与B的根节点相等
  • 然后判断以C为根节点的子树是否与B的结构一致
阅读全文 »

合并两个排序的链表

发表于 2019-03-08 | 分类于 剑指offer | | 阅读次数:
字数统计: 181字 | 阅读时长 ≈ 1分钟

题目描述

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

解题思路

  • 使用递归即可,比较链表 A 与链表 B 的首结点,如 A > B ,则 B 的首结点为最小,接下来 B.next 与 A 的首结点比较,不断重复此过程即可。
阅读全文 »

反转链表

发表于 2019-03-04 | 分类于 剑指offer | | 阅读次数:
字数统计: 93字 | 阅读时长 ≈ 1分钟

题目描述

输入一个链表,反转链表后,输出新链表的表头。

解题思路

  • 使用迭代法即可。
阅读全文 »
1234

ricadro

40 日志
7 分类
11 标签
GitHub E-Mail
© 2020 ricadro | Site words total count: 15.1k
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4