java
文章平均质量分 65
每天三杯咖啡
图难于其易,为大于其细,天下难事,莫做于于易,天下大事,莫做于细
展开
-
MyBatisePlus 基于唯一索引批量新增或修改
MyBatisePlus 基于唯一索引批量新增或修改原创 2023-03-20 22:46:42 · 3181 阅读 · 3 评论 -
中台技术标准
公益中台技术标准一、工程结构统一使用sofaboot的sofa分层方式,SOFA 分层是沿袭自蚂蚁 SOFA 工程的传统分层,蚂蚁传统 SOFA 应用通常基于模块化形式进行开发,解决了模块化开发下各模块相互影响的问题。工程结构如下:+appname|—— app (应用目录)|———— common (基础结构层)|—————— common-util (公共常量,枚举,异常,日志,Log以及工具类等)|—————— common-dal (ZDAL配置,...原创 2022-02-23 14:21:41 · 1525 阅读 · 0 评论 -
JAVA类隔离机制
doom类隔离机制目录doom类隔离机制类加载概述什么是类加载类加载的好处类加载流程类加载时机加载顺序Luancher源码ExtClassLoader源码AppClassLoader源码双亲委托父加载器不是父类Bootstrap ClassLoader自定义ClassLoader一般步骤举个栗子破坏双亲委托案例Doom的类隔离pandora的类隔离问题&痛点pandora是什么JVM-Sandbox的原创 2022-02-22 15:13:40 · 2319 阅读 · 0 评论 -
Spring源码中的主要几个类功能关系解读
0.ApplicationContextApplicationContext是个接口,实际上也是一个BeanFactory,不过比BeanFactory更加强大,比如: HierarchicalBeanFactory:拥有获取父BeanFactory的功能 ListableBeanFactory:拥有获取beanNames的功能 ResourcePatternResolver:资源加载器,可以一次性获取多个资源(文件资源等等) EnvironmentCapable:可以获取运行时环境(没有设原创 2021-09-08 01:16:53 · 302 阅读 · 0 评论 -
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 · 454 阅读 · 0 评论 -
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 · 145 阅读 · 0 评论 -
JVM 初体验 类加载器自定义与打破双亲委派机制
类加载器分三步来理解1.基本原理 双亲委派机制JVM类加载器是有亲子层级结构的,如下图 这里类加载其实就有一个双亲委派机制,加载某个类时会先委托父加载器寻找目标类,找不到再 委托上层父加载器加载,如果所有父加载器在自己的加载类路径下都找不到目标类,则在自己的 类加载路径中查找并载入目标类。 比如我们的Math类,最先会找应用程序类加载器加载,应用程序类加载器会先委托扩展类加载 器加载,扩展类加载器再委托引导类加载器,顶层引导类加载器在自己的类加载路径里找了半天 没找到Math类,则向下退回加..原创 2021-08-18 23:17:52 · 232 阅读 · 0 评论 -
梳理SpringIOC的设计思想与技巧
重新梳理SpringIOC里面的设计原则前言设计模式代码案例前言之前一直想把设计模式写出来但是总感觉写不下去,原因无非在于设计模式的本质还是一种思想,一种技术运用的技巧的沉淀。既然如此不妨从实际的优秀代码去反推理论在其中的运用设计模式面向对象的七(或五大原则,前五项)大基本原则:单一职责原则(SRP) 、开放封闭原则(OCP) 、里氏替换原则(LSP)、 依赖倒置原则(DIP)、 接口隔离原则(ISP)、迪米特法则(Law Of Demeter)、组合/聚合复用原则(Composite/Agg原创 2021-08-01 04:31:17 · 396 阅读 · 0 评论 -
识别有效的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 · 201 阅读 · 0 评论 -
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 · 474 阅读 · 0 评论 -
05 策略模式 的使用方法
05策略模式在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。如果使用多重条件转移语句实现(即硬编码),不但使条件语句变得很复杂,而且增加、删除或更换算法要修改原代码,不易维护,违背开闭原则。如果采用策略模式就能很好解决该问题。策略模式的定义与...原创 2020-05-08 08:14:51 · 292 阅读 · 0 评论 -
04工厂模式综合(简单工厂,工厂方法,抽象工厂)
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。一 工厂模式演化过程的描述例子 1)还没有工厂时代:假如还没有工业革命,如果一个客户要一款宝马车,一般的做...原创 2020-05-07 08:17:45 · 202 阅读 · 0 评论 -
温故而知新 03建造者模式的实现回顾
需求:创建复杂的对象---通过简单的对象的自由组合,返回一个完整的产品。意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。何时使用:一些基本部件不会变...原创 2020-05-04 12:47:34 · 153 阅读 · 0 评论 -
02 原型模式
02 原型模式Java中怎么拷贝一个对象呢?可以通过调用这个对象类型的构造器构造一个新对象,然后将要拷贝对象的属性设置到新对象里面。1.Java中也有另一种不通过构造器来拷贝对象的方式,这种方式称为克隆。2.Java提供了java.lang.Cloneable和java.lang.Object中的clone()方法来支持克隆。使用条件是用于创建重复的对象,同时又能保证性能。这种类型的设...原创 2020-04-29 20:58:25 · 197 阅读 · 0 评论 -
温故而知新 设计模式01 单例模式
01单例模式用啥方式解决实际问题更合适就用啥方式,我们不追求那些不必要的完美饿汉模式01 最简单版但是好用package xzc._01singleton;/*饿汉模式01Class.forName() 也行啊1.放单例的静态变量2.构造方法私有化3.取出单例的静态化方法类加载到内存后就会自动实例化一个单例*/public class...原创 2020-04-27 22:09:36 · 147 阅读 · 0 评论 -
温故而知新 aop
作者:老刘链接:https://www.zhihu.com/question/344440064/answer/815268534来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。、AOP中的相关概念看过了上面的例子,我想大家脑中对AOP已经有了一个大致的雏形,但是又对上面提到的切面之类的术语有一些模糊的地方,接下来就来讲解一下AOP中的相关概念,了解...转载 2020-04-12 02:33:46 · 133 阅读 · 0 评论 -
温故而知新 Spring IoC 说透控制反转的本质
要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Principle )。什么是依赖倒置原则?假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根据底盘设计车身,最后根据车身设计好整个汽车。这里就出现了一个“依赖”关系:汽车依赖车身,车身依赖底盘,底盘依赖...转载 2020-04-12 02:23:25 · 143 阅读 · 0 评论 -
温故而知信 回顾一下面向对象 -----多态 最简单易懂版
以前觉得好难,现在回顾 忽然觉得好简单啊 就这点东西直接上代码 package cn.xzc.hrms;public class 多态学习 { public static void main(String[] args) { // 人类是人 People people= new People();// 人类是动物 ...原创 2020-04-07 04:33:05 · 119 阅读 · 0 评论 -
spring 到SpringBoot
非常重要的编码规范1.包名:全小写,多个单词用“_”隔开,不准驼峰或数字开头2.类名:首字母大写,驼峰3.方法名:首字母小写,驼峰4.代码块“{}”中的内容要有缩进,同级代码要左对齐 , 注释和代码左对齐spring 到SpringBoot一.Spring回顾1.基本概念1.1.SpringBoot介绍Spring Boot是其设计目的是用来简化新Spring应...原创 2020-03-15 08:35:39 · 381 阅读 · 0 评论 -
vue.js+iview+springboot搭建一个前后端分离登陆demo
文章介绍的是vue.js+iview+springboot来搭建一个简单的前后端分离登录demo。https://www.jianshu.com/p/bbc455d86a22转载 2020-02-22 18:10:09 · 138 阅读 · 0 评论 -
mysql删除重复数据,并保留重复数据中最小id所在行的数据
原始数据库 usename重复数据删除第一步 找出username 字段有重复值 且count >1的username值第二步 username字段有重复且count>1数据的最小id显然就是以name为条件删除 id 不在第二步里面的所有数据 我们拼接sql语句结果#第一步 找出username 字段有重复值 且count >...原创 2020-02-11 01:37:27 · 372 阅读 · 1 评论 -
@ResponseBody注解作用和原理
@ResponseBody的作用其实是将java对象转为json格式的数据。@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式...原创 2020-02-10 17:49:05 · 845 阅读 · 0 评论 -
如何给idea添加本地Maven仓库并修改idea默认maven仓库位置,配置阿里镜像
什么是MavenMaven的含义:Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 是一个项目管理和整合工具。Maven 为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为 Maven 使用了一个标准的目录结构和一个默认的构建生命周期。在有多个开发团队环境的情况下,...原创 2020-02-08 20:09:02 · 6009 阅读 · 0 评论 -
Spring和SpringMVC的父子容器关系 整合Spring时Service层为什么不做全局包扫描详解
一、Spring和SpringMVC的父子容器关系1.讲问题之前要先明白一个关系一般来说,我们在整合Spring和SpringMVC这两个框架中,web.xml会这样写到: <!-- 加载spring容器 --> <!-- 初始化加载application.xml的各种配置文件 --> <context-param> <p...翻译 2020-01-29 06:56:43 · 261 阅读 · 0 评论 -
报错 java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. Specify @Bootstra
由于我maven仓库之前已经有了有个5.0.10的test包导致我的变量<org.springframework.version>4.2.5.RELEASE</org.springframework.version>失效 低版本没有覆盖掉高版本的maven jar包,导致spring——test 与spring-mvc版本不一致 而产生报错java.lan...原创 2020-01-17 12:03:57 · 703 阅读 · 0 评论