- 博客(65)
- 资源 (4)
- 收藏
- 关注
原创 权限系统设计模型分析(DAC,MAC,RBAC,ABAC)
术语这里对后面会用到的词汇做一个说明用户发起操作的主体。对象(Subject)指操作所针对的客体对象,比如订单数据或图片文件。权限控制表 (ACL: Access Control List)用来描述权限规则或用户和权限之间关系的数据表。权限 (Permission)用来指代对某种对象的某一种操作,例如“添加文章的操作”。权限标识权限的代号,例如用“ARTICLE_ADD”来指代“添加文章的操作”权限。常见设计模式自主访问控制(DAC: Discretion
2022-03-12 16:29:30 2130 1
原创 中台技术标准
公益中台技术标准一、工程结构统一使用sofaboot的sofa分层方式,SOFA 分层是沿袭自蚂蚁 SOFA 工程的传统分层,蚂蚁传统 SOFA 应用通常基于模块化形式进行开发,解决了模块化开发下各模块相互影响的问题。工程结构如下:+appname|—— app (应用目录)|———— common (基础结构层)|—————— common-util (公共常量,枚举,异常,日志,Log以及工具类等)|—————— common-dal (ZDAL配置,...
2022-02-23 14:21:41 1327
原创 JAVA类隔离机制
doom类隔离机制目录doom类隔离机制类加载概述什么是类加载类加载的好处类加载流程类加载时机加载顺序Luancher源码ExtClassLoader源码AppClassLoader源码双亲委托父加载器不是父类Bootstrap ClassLoader自定义ClassLoader一般步骤举个栗子破坏双亲委托案例Doom的类隔离pandora的类隔离问题&痛点pandora是什么JVM-Sandbox的
2022-02-22 15:13:40 1542
原创 Spring Boot 启动流程
Spring Boot 的启动过程中,只会创建一个 Spring 上下文(即 Root ApplicationContext)。Spring Boot 的整体启动流程如下:
2022-02-21 14:23:14 220
原创 Ceph之RBD恢复的几种方式与原理
目录RBD是什么RBD使用写入文件RBD组装Ceph--CRUSHosdmap提取crushmapceph中rbd的增量备份和恢复RBD在Ceph底层的存储方式,解释了RBD的实际占用容量和RBD大小的关系,用几个文件的例子演示了文件在RBD(更恰当的是xfs)中的存储位置,最后组装了一个RBD,给出了一些FAQ。RBD是什么 RBD就是Ceph里的块设备,一个4T的块设备的功能和一个4T的SATA类似,挂载的RBD就可以当磁盘用。 resizable
2021-10-15 16:20:48 1626
原创 Spring源码中的主要几个类功能关系解读
0.ApplicationContextApplicationContext是个接口,实际上也是一个BeanFactory,不过比BeanFactory更加强大,比如: HierarchicalBeanFactory:拥有获取父BeanFactory的功能 ListableBeanFactory:拥有获取beanNames的功能 ResourcePatternResolver:资源加载器,可以一次性获取多个资源(文件资源等等) EnvironmentCapable:可以获取运行时环境(没有设
2021-09-08 01:16:53 257
原创 spring源码 基于JDK8仿写spring(持续更新)
1.自动扫描bean注入经典入口/** * @author xzc */public class Test { public static void main(String[] args) { XzcApplicationContext applicationContext = new XzcApplicationContext(XzcAppConfig.class); UserInterface userService = (UserIn...
2021-09-05 03:39:32 353
原创 spring源码初体验01 从对象到bean的生命历程
首先我们创建context容器然后进行测试/** * @Author: xzc * @Date: 2021/8/20 23:50 * @Version 1.0 */public class XzcSpringBeanLearnMain { public static void main(String[] args) { /** * userService.class -> 推断构造(默认无参构造方法 有参构造方法会去ioc里根据类型 名字 拿入参 没有报错) -...
2021-09-04 17:21:50 116
原创 JVM 初体验 类加载器自定义与打破双亲委派机制
类加载器分三步来理解1.基本原理 双亲委派机制JVM类加载器是有亲子层级结构的,如下图 这里类加载其实就有一个双亲委派机制,加载某个类时会先委托父加载器寻找目标类,找不到再 委托上层父加载器加载,如果所有父加载器在自己的加载类路径下都找不到目标类,则在自己的 类加载路径中查找并载入目标类。 比如我们的Math类,最先会找应用程序类加载器加载,应用程序类加载器会先委托扩展类加载 器加载,扩展类加载器再委托引导类加载器,顶层引导类加载器在自己的类加载路径里找了半天 没找到Math类,则向下退回加..
2021-08-18 23:17:52 221
原创 梳理SpringIOC的设计思想与技巧
重新梳理SpringIOC里面的设计原则前言设计模式代码案例前言之前一直想把设计模式写出来但是总感觉写不下去,原因无非在于设计模式的本质还是一种思想,一种技术运用的技巧的沉淀。既然如此不妨从实际的优秀代码去反推理论在其中的运用设计模式面向对象的七(或五大原则,前五项)大基本原则:单一职责原则(SRP) 、开放封闭原则(OCP) 、里氏替换原则(LSP)、 依赖倒置原则(DIP)、 接口隔离原则(ISP)、迪米特法则(Law Of Demeter)、组合/聚合复用原则(Composite/Agg
2021-08-01 04:31:17 263
原创 识别有效的IP分类并统计
/**请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。 所有的IP地址划分为 A,B,C,D,E五类 A类地址1.0.0.0~126.255.255.255; B类地址128.0.0.0~191.255.255.255; C类地址192.0.0.0~223.255.255.255; D类地址224.0.0.0~239.255.255.255; E类地址240.0.0.0~255.255.255.255 私网IP范围是: 10.0..
2021-06-30 23:44:15 163
原创 2021-06-30
火星文算法假设有一种不同于四则运算的算法符号或新闻其中x#y表示2x+3y+4xy表示3∗x+y+2其中y表示3*x+y+2其中y表示3∗x+y+2其中的有限级高于#(类似于乘除法高于加减法)同时遵循从左往右的计算规则。请写出对应算法正确计算出火星文的最终结果以下用例123#4$5#67$78#123#4$5#67$78输出结果14149package xzc.huawei.partise02;import java.util.Scanner;public class
2021-06-30 23:31:17 420
原创 一文带你彻底理解同步和锁的本质(干货)(转载)
一文带你彻底理解同步和锁的本质(干货)谈到锁,离不开多线程,或者进程间的通信。为了更好地从底层原理去了解锁的机制,形成体系化的知识,这篇文章我会从进程间通信底层原理说起,然后介绍一下Java中各种线程通信的实现机制,最后做一个系统的总结。还记得上次跟你撕逼内存模型的那个人吗,他又来了,并且向你甩出了一堆问题:1、为什么需要通信1.1、竞态条件我们知道,在操作系统中,互相协作的进程之间可能共享一些彼此都能读写的公共存储区,假设两个进程都需要改写这个公共的存储...
2020-11-28 16:50:58 473
原创 java Stream流
mport static java.util.stream.Collectors.groupingBy;public class stream { //比如说 你需要在一个列表中 筛选出所以大于15的苹果,然后按照颜色分组 //按常规的筛选写法 就是在循环里面 迭代筛选 public static void main(String[] args) { List<Apple> appleList = new ArrayList<>();.
2020-10-24 18:09:18 148
原创 mongoDB 学习02 JAVA篇 用spring-boot-starter-data-mongodb做crud
java增删改查springBoot导包<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </de..
2020-10-15 00:43:22 582
原创 mongoDB 学习笔记01 基本概念基础原生crud
什么是MongoDB ?MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。CAP定理(CAP theorem)在计算机科学中, CAP定理(CAP theo.
2020-10-13 05:18:35 146
原创 代理模式梳理初步 手写spring源码解析摘要
代理模式 最典型的应用莫过于Spring了 Spring 的核心是 IOC容器和AOP切面IOC: 当某个Java实例需要另一个 Java 实例时,传统的方法是由调用者创建被调用者的实例(例如,使用 new 关键字获得被调用者实例),而使用Spring框架后,被调用者的实例不再由调用者创建,而是由 Spring 容器创建,这就是控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Invers...
2020-07-09 00:56:58 94
原创 05 策略模式 的使用方法
05策略模式在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。如果使用多重条件转移语句实现(即硬编码),不但使条件语句变得很复杂,而且增加、删除或更换算法要修改原代码,不易维护,违背开闭原则。如果采用策略模式就能很好解决该问题。策略模式的定义与...
2020-05-08 08:14:51 263
原创 04工厂模式综合(简单工厂,工厂方法,抽象工厂)
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。一 工厂模式演化过程的描述例子 1)还没有工厂时代:假如还没有工业革命,如果一个客户要一款宝马车,一般的做...
2020-05-07 08:17:45 165
原创 温故而知新 03建造者模式的实现回顾
需求:创建复杂的对象---通过简单的对象的自由组合,返回一个完整的产品。意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。何时使用:一些基本部件不会变...
2020-05-04 12:47:34 122
原创 02 原型模式
02 原型模式Java中怎么拷贝一个对象呢?可以通过调用这个对象类型的构造器构造一个新对象,然后将要拷贝对象的属性设置到新对象里面。1.Java中也有另一种不通过构造器来拷贝对象的方式,这种方式称为克隆。2.Java提供了java.lang.Cloneable和java.lang.Object中的clone()方法来支持克隆。使用条件是用于创建重复的对象,同时又能保证性能。这种类型的设...
2020-04-29 20:58:25 163
原创 温故而知新 设计模式01 单例模式
01单例模式用啥方式解决实际问题更合适就用啥方式,我们不追求那些不必要的完美饿汉模式01 最简单版但是好用package xzc._01singleton;/*饿汉模式01Class.forName() 也行啊1.放单例的静态变量2.构造方法私有化3.取出单例的静态化方法类加载到内存后就会自动实例化一个单例*/public class...
2020-04-27 22:09:36 135
原创 平衡二叉树、B树、B+树、B*树 理解 一通皆通
1、平衡二叉树概念平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构;特点:平衡二叉树是采用二分法思维把数据按规则组装成一个树形结构的数据,用这个树形结构的数据减少无关数据的检索,大大的提升了数据检索的速度;平衡二叉树的数据结构组装过程有以下规则:(1)非叶子节点只能允许最多两个子节点存在。(2)每一个非叶子节点数据分布规则为左边的子节点小当前节...
2020-04-18 11:20:40 137
转载 温故而知新 aop
作者:老刘链接:https://www.zhihu.com/question/344440064/answer/815268534来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。、AOP中的相关概念看过了上面的例子,我想大家脑中对AOP已经有了一个大致的雏形,但是又对上面提到的切面之类的术语有一些模糊的地方,接下来就来讲解一下AOP中的相关概念,了解...
2020-04-12 02:33:46 127
转载 温故而知新 Spring IoC 说透控制反转的本质
要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Principle )。什么是依赖倒置原则?假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根据底盘设计车身,最后根据车身设计好整个汽车。这里就出现了一个“依赖”关系:汽车依赖车身,车身依赖底盘,底盘依赖...
2020-04-12 02:23:25 108
原创 温故而知信 回顾一下面向对象 -----多态 最简单易懂版
以前觉得好难,现在回顾 忽然觉得好简单啊 就这点东西直接上代码 package cn.xzc.hrms;public class 多态学习 { public static void main(String[] args) { // 人类是人 People people= new People();// 人类是动物 ...
2020-04-07 04:33:05 93
原创 阿里云(cenos7.3)安装配置ElasticSearch搜索引擎
安装jdk1.8并配置环境变量 看上一篇文章链接:https://blog.csdn.net/qq_34376868/article/details/105178989新建一个es目录 进去为了简便,懒得再折腾了 我直接使用wget获取zip安装包(如果红色部分是版本可以自己选择,ES的5.x 、6.x 、7.x版本有很多不同之处,小火棒们可自行百度了解一下 ,没加速有点...
2020-03-29 18:35:25 271
原创 准备篇 linux 阿里云 新机器 安装jdk1.8 rpm方式 (提供资源工具包)
官网太慢 上我百度云 下linux版jdk资源链接:https://pan.baidu.com/s/1kA2NkHOmNnYgiBcRe8zuPg提取码:al76推荐xsell + xftp 控制阿里云或者本地linux虚拟机 可以关注看以前的的文章拿工具资源首先你的买了阿里云ems服务器吧系统选择centos7.3或者本地虚拟机来个网络正常的centos...
2020-03-29 15:39:29 307
原创 如何在阿里云(centos7)上面搭建fastdfs服务器(搭建篇)--保姆级超级详细
前置条件一个网络畅通的centos7并且把fastdfs工具资源包放进去了没有这些资源的看前一篇博客1.centos7.3上面还需yum安装一些资源安装gcc(编译时需要)因为fastdfs是C语言编写的,所以安装fastdfs之前先安装gcc进行yum install -y gcc gcc- c++yum install -y gcc gcc- c++安装libe...
2020-03-28 05:10:59 764
原创 如何在阿里云(centos7)上面搭建fastdfs服务器(前置环境准备篇)
首先你的买了阿里云ems服务器吧可以通过远程连接工具xshell5和xftp 5来连接阿里云服务器 资源如下链接:https://pan.baidu.com/s/11HzxnFqYPryr893fh8KEEQ提取码:jjk8打开xshell5主机是你阿里云的ip后续账号密码是你阿里云esm的账号密码输入成功登陆结果如下点红色箭头弹出图形界面的x...
2020-03-28 00:37:32 212
原创 java基础技术路线
文章有点长,请大家耐心看完,话不多说直接上干货!一门永不过时的编程语言——Java 编程开发。Java编程语言占比:据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数量位居首位。 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!Java工程师人才缺口...
2020-03-18 09:19:34 215
转载 Maven 中 dependencies 与 dependencyManagement 的区别
https://www.jianshu.com/p/c25fbb27abb2为了项目的正确运行,必须确保应用的各个项目的依赖项和版本一致,才能保证测试的和发布的是相同的结果dependencyManagement在项目的 parent 层,可以通过 dependencyManagement 元素来管理 jar 包的版本,让子项目中引用一个依赖而不用显示的列出版本号父模块中的 ...
2020-03-15 15:17:39 124
原创 spring 到SpringBoot
非常重要的编码规范1.包名:全小写,多个单词用“_”隔开,不准驼峰或数字开头2.类名:首字母大写,驼峰3.方法名:首字母小写,驼峰4.代码块“{}”中的内容要有缩进,同级代码要左对齐 , 注释和代码左对齐spring 到SpringBoot一.Spring回顾1.基本概念1.1.SpringBoot介绍Spring Boot是其设计目的是用来简化新Spring应...
2020-03-15 08:35:39 297
原创 idea乱码问题总结
问题描述idea启动tomcat后乱码了,并且,idea的各种编码都是设置的为UTF-8,但是中文就是乱码了。解决方法idea的中文乱码现象: idea乱码表现为控制台打印的信息中,出现乱码,截图如下:解决方法: 进入idea的安装目录, 进入bin目录下。找到idea.exe.vmoptions这个文件 和 idea64.exe.vmoptions, 在两个文件的最后一行加入-D...
2020-03-06 08:21:15 99
转载 数据库一对一、一对多、多对多关系理解(转载)
版本一一、首先给出三种关系的实例1、一对一关系实例* 一个人对应一张身份证,一张身份证对应一个人2、一对多关系实例* 一个班级拥有多个学生,一个学生只能够属于某个班级3、多对多实例* 一个学生可以选修多门课程,一个课程可以被多个学生选修二、一对一关系一对一关系是最好理解的一种关系,在数据库建表的时候可以将人表的主键放置与身份证表里面,也可以将身份证表的主...
2020-02-26 20:12:11 11417
转载 vue.js+iview+springboot搭建一个前后端分离登陆demo
文章介绍的是vue.js+iview+springboot来搭建一个简单的前后端分离登录demo。https://www.jianshu.com/p/bbc455d86a22
2020-02-22 18:10:09 132
原创 基于Idea从零搭建一个最简单的vue项目
一、需要了解的基本知识 node.js Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。 Node.js是一个基于Chrome ...
2020-02-22 17:25:07 160
原创 解决idea编译报错最最省事的方法:Error:(1,1) java:非法字符:'\ufeff'
当我把Eclipse中的类拷贝到idea项目中,就出现了这个错误。Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,但使用IDEA编译UTF-8+BOM编码的文件时会出现这个错误:Error:(1, 1) java: 非法字符: '\ufeff'。关于UTF-8+BOM 参考 https://www.zhihu.com/question/20167122/answer...
2020-02-11 21:41:40 1169 1
原创 mysql删除重复数据,并保留重复数据中最小id所在行的数据
原始数据库 usename重复数据删除第一步 找出username 字段有重复值 且count >1的username值第二步 username字段有重复且count>1数据的最小id显然就是以name为条件删除 id 不在第二步里面的所有数据 我们拼接sql语句结果#第一步 找出username 字段有重复值 且count >...
2020-02-11 01:37:27 337 1
软件工程完整ppt
2018-08-04
传智播客 c++讲义(扫地僧王保明版)
2018-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人