自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 设计原则与思想:设计原则

理论一:对于单一职责原则,如何判断某个类的职责是否够单一如何理解单一职责原则(SRP) ?SOLID原则并非单纯的1个原则,而是由5个设计原则组成,他们分别是:单一职责原则,开闭原则,里式替换原则,接口隔离原则和依赖反转原则,依次对应SOLID中的S,O,L,I,D这五个英文字母单一职责原则的英文是Single Responsibility Principle 缩写SRP . 意思是一个类或者模块只负责完成一个职责(或者功能)一个类只负责完成一个小职责或者功能.不要设计大而全的类,要设计粒度小,功能

2020-07-30 12:51:02 338

原创 pgsql 分词zhparser安装

pgsql 分词zhparser安装

2023-02-07 15:09:03 793

原创 根据实体和字段得到字段的值采用类反射

场景: 根据不同条件值取不同的字段值例如 :Score score= new Score();switch (itemDetail.getEvaluationCode()) { case 1: score.getCostLevel() break; case 2: score.getScarcityLevel() break; case 3: // 计算数据完整性对应的系数

2021-07-23 09:44:14 223

转载 单例模式(下)如何设计实现一个集群环境下的分布式单例模式?

如何理解单例模式中的唯一性? 首先,我们重新看一下单例的定义:“一个类只允许创建唯一一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。”定义中提到,“一个类只允许创建唯一一个对象”。那对象的唯一性的作用范围是什么呢?是指线程内只允许创建一个对象,还是指进程内只允许创建一个对象?答案是后者,也就是说,单例模式创建的对象是进程唯一的。这里有点不好理解,我来详细地解释一下。当我们使用命令行或者双击运行这个可执行文件的时候,操作系统会启动一个进程,将这个执...

2021-05-08 22:46:57 327

原创 单例模式(中)我为什么不推荐使用单例模式?又有何替代方案?

单例存在哪些问题?1.单例对oop特性的支持不友好OOP 的四大特性是封装、抽象、继承、多态。单例这种设计模式对于其中的抽象、继承、多态都支持得不好public class Order { public void create(...) { //... long id = IdGenerator.getInstance().getId(); //... }}public class User { public void create(...) {

2021-04-30 00:00:45 410

转载 单例模式(上)为什么说支持懒加载的双重检测不比饿汉式更优?

为什么说支持懒加载的双重检测不比饿汉式更优?为什么要使用单例?单例设计模式(Singleton Design Pattern)理解起来非常简单。一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。案例一:处理资源访问冲突public class Logger { private FileWriter writer; public Logger() { File file = new File("/User.

2021-04-27 23:52:41 144

原创 security

2021-03-11 15:13:27 107

原创 redis

默认是在启动文件的同级产生一个dump.rdb文件redis中的rdb文件是基于内存生成的, aof是日志记录生成

2021-03-11 15:12:10 137 1

原创 docker

Docker为什么比VM(虚拟机)块?docker有着比虚拟机更少的抽象层.从虚拟机到容器的运行差距2.docker利用的是宿主机的内核,VM需要是Guest OS所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导.虚拟机是加载Guest OS ,分钟级别的,而docker利用宿主机的操作系统,省略了复杂的过程,秒级.总结一句话:容器的持久化和同步操作,容器间也是可以数据共享的...

2021-03-11 14:51:06 89

原创 springmvc

和传统的servlet比多了一个dispatchServlet 类似路由 做转发

2021-03-11 11:55:44 99

原创 volatile

并发并行的区别:并发 多个线程访问一个程序并行 多个程序一起运行 例如泡方便面时 烧开水和挤调味包是一个并行对volatile的理解volatile是java虚拟机提供的轻量级同步资源 保证可见性 不保证原子性 禁止指令重排 JMM java内存模型 (可见性,原子性,有序性 和volatile对比保证了原子性)JMM 本身是一种抽象的概念并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构造数组对象的...

2021-03-11 11:47:09 89

原创 JVM

三个部分:类装载子系统,运行时数据区(内存模型),字节码执行引擎栈的用途: 特点 先进后出 first in last out FILO方法区 也叫元空间 类的一些基本信息, 常量 ,静态变量等信息由字节码执行引擎执行堆 存储的全部是对象,每个对象都包含一个与之对应的class信息栈 存放的是基本类型的值和引用类型的地址 在堆中存放是基本类型的值和引用类型 在堆中的地址STW : stop the world...

2021-03-11 11:43:44 97

原创 mybatis缓存

2021-03-11 11:24:14 99

原创 mysql索引

索引的本质控制树的高度,扫描磁盘就少几次 每个节点都是索引的集B+ tree 多叉平衡树 一个节点 16kb , (bigint 8byte)数据引擎: innodb和myisam区别innodb在硬盘中只保留两个文件,表结构和数据索引和数据myisam有三个文件,表结构,数据索引,数据聚集索引: 叶子节点有完整的数据非聚集索引: 叶子节点只有磁盘地址 ,指针指向数据的地址为什么inndb表必须有主键?这种表存储的只有结构和数据加索引...

2021-03-11 11:11:45 77

原创 hashmap

java8 HashMap底层数据结构Hash表 = 数组+线性链表+ 红黑树数组hash冲突,多个值在同一个位置上数组:使用一段连续存储单元存储数据.对于指定下标的查找,时间复杂度为o(1),对于一般的插入删除操作,涉及到数组元素的移动,其平均复杂度为o(n)线性链表: 对链表的新增,删除操作在查找到操作位置后,只需要处理节点间的引用即可,时间复杂度为o(1),查找操作需要遍历链表中的所有节点卓一进行对比,复杂度为O(n)数组加链表的结构 性能不高,要是链表非常长的话,查.

2021-03-11 10:35:23 276

原创 rabbitmq

原文链接:https://blog.csdn.net/kavito/article/details/91403659RabbitMQ:基于AMQP协议,erlang语言开发RabbitMQ的工作原理下图是RabbitMQ的基本结构:组成部分说明:Broker:消息队列服务进程,此进程包括两个部分:Exchange和QueueExchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过虑。Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的P.

2021-03-10 14:40:38 125

原创 oracle创建库,导库操作

--创建数据库--查询表空间存放路劲select * from dba_data_files;--创建表空间自动增长create tablespace lr_annex_ts datafile 'D:\app\Administrator\gxlrs\lr_annex_ts.dbf' size 128m autoextend on next 64m;--创建表空间create tablespace NECIPS_YC datafile 'E:\APP\ADMINISTRATOR\ORADAT

2021-01-29 15:38:15 200

原创 springaop

aop是目标 springaop是一个技术手段达到目的 ,Aspectj 也是一个技术手段springaop两种方式都采用了, 两种编程风格ioc是一个编程目标 di是一个手段实现ioc容器是一个线程安全的mapaop的织入是初始化的时候完成的springaop 默认用的是什么技术实现的? 看条件的当有接口时使用jdk动态代理 没有的时候使用cglib代理默认是使用jdk代理的 初始化的时候有一个判断 当三个条件有一个为true的时候就为使用c...

2021-01-20 22:09:48 122

原创 mybatisplus 逆向生成工具类(mysql/oracle)

pom引入:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency>

2021-01-13 16:09:12 653

原创 多数据源的事务解决 atomikos

资料原文链接gitee地址springboot-mybatis-druid-atomikosAOP动态数据源切换,atomikos分布式事务一、 项目说明本用例基于springboot+mybatis+druid+atomikos 配置动态多数据源, 实现分布式事务。作者源码仓库地址: https://github.com/lishuangqi/springboot-mybatis-druid-atomikos根据网上的搭建始终没实现atomikos分布式事务,经过两天网上查询资料终于实现了。

2021-01-05 17:10:12 436

原创 分布式事务框架 JTA,TCC,seata

每一个对应自己的dbTC:事务协调者 全局的TM: 事务管理者 事务的发起 管理分支 RM:资源管理器Seata解析-TM、RM、TC交互流程梳理https://blog.csdn.net/weixin_38308374/article/details/108329792@Transactional spring的事务注解 : 1.建立连接 2.开启事务 3.执行方法 4.提交或者回滚...

2021-01-04 21:49:09 1473

原创 spring事物

两个不同的事物是独立的注意事物的顺序 :例如一个事物是查询一个事物是插入 先执行插入后查询两个事物,就发生了脏读的可能,脏读: 一个事物没有提交就被其他事物读取到了 解决方法 提高事物隔离级别 (Read_committed)不可重复读: 同一个事物中 同一个sql语句查询出来的结果不一样 例如:执行完第一次查询后 执行了insert或者update ,再次执行第一次查询的sql后 两次结果不一致(两个事物是独立的 一个事物两次查询,中间发生...

2021-01-04 21:38:34 201 3

原创 springboot 自定义注解启动扫描注解类信息

先自定义一个注解:import java.lang.annotation.*;@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inheritedpublic @interface Section { String name();}写一个类实现 BeanPostProcessor@Componentpublic class Ms..

2020-11-23 18:13:59 1803

原创 @Resource 和@Aoutowired 区别

IDEA 环境 springboot + mybatis@Reposity 和 @Mapper 区别 :如果是@Reposity 需要在启动类中加入包扫描@MapperScan (底层启动扫描到后@Reposity会自动转成Mapper) ,所以dao层启动使用@Mapper 效果一样但是会有一个问题在项目中dao层 使用@Mapper 在service实现类中发现使用@Aoutowired 注入 会有警告 但使用不会报错使用@resource 警告消失, 或者在dao层使用@Repos...

2020-10-23 11:39:14 364

原创 解决老项目中的lib包引入maven中

老项目中一般web-info下的lib包在maven项目中引入需要自己添加 打包时候需要处理解决方法: 使用systemPath标签 引入lib包下的包 并且在scope标签中加上 system如果要打包 需要添加几个东西在plugiins 下面的 标签加上 includeSystemScope 为 true并且在resources 下面加上 这些玩意...

2020-10-22 14:45:02 735

原创 aop 多数据源

此方法是在需要使用的地方加上自定义注解@DataSource根据注解下这个方法的传参 注意: (规定参数命名)配置文件ymlspring: datasource: type: com.zaxxer.hikari.HikariDataSource hikari: minimum-idle: 5 maximum-pool-size: 15 auto-commit: true idle-timeout: 30000 poo

2020-10-16 13:14:43 242

原创 docker build dockerfile 失败问题(centos8 yum -y install vim)

解决centos8 yum -y install vim 失败问题https://blog.csdn.net/qq_40940622/article/details/105915219还是没有用 重启Linux 可能识别不了修改的文件需要重启

2020-09-26 11:20:23 1441 1

原创 docker启动nginx 外网访问不了

1.docker启动 nginxdocker run -d -p 8080:80 nginx2.看下nginx有没有启动成功ps -ef | grep nginx出现了master和worker 代表启动成功了3.curl localhost:8080查看主机能不能访问通过如果不能:很大的原因是docker0和你本机的ip冲突解决方法: 改变docker0的ipvim/etc/docker/daemon.json{"bip":"10.55.0.1/16".

2020-09-20 11:34:53 5656 2

原创 map集合的遍历几种方式

Map<String,Object> map = new HashMap<>(); List<Integer> list1 = new ArrayList<>(); List<Integer> list2 = new ArrayList<>(); List<Integer> list3 = new ArrayList<>(); list1.a...

2020-08-26 15:20:34 92

原创 验证码请求图片

复制就可以用 直接请求validateCode方法就可以//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.insigma.framework.web.securities.controller;import java.awt.Color;import java.awt.Font;import java.awt.G

2020-08-06 21:16:50 179

原创 ajax请求 ,过滤器拦截后返回给ajax请求

@Componentpublic class FilterDemo extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { .

2020-08-06 20:38:50 657

原创 主从复制mysql

windows服务器下mysql数据库主从复制案例前提:;mysql版本最好一直主数据库:MySQL版本5.7.29,IP为172.18.109.119从数据库:MySQL版本5.7.29,IP为172.18.109.122主服务器配置第一步:关闭mysql服务在mysql安装目录下打开windows命令窗口 快捷键 :到指定目录按shift+鼠标右键,点解powerShell窗口执行 net stop mysql第二步:修改mysql.ini文件修改mysql.ini 文件# 主从复

2020-07-17 16:19:32 110

原创 贫血模式和充血模式的理解

很多业务系统都是基于MVC三层架构开发的,确切的讲,是一种基于贫血模式的MVC三层架构(面向过程编程风格)领域驱动设计(Domain Driver Design,简称DDD)UserEntity和UserReposity组成数据访问层,UserBo和UserService组成了业务逻辑层,UserVo 和UserController 在这里属于接口层.像UserBo这样,只包含数据,不包含业务逻辑的类,就叫做贫血模式在贫血模式中,数据和业务被分割到不同的类中.充血模式正好相反,数据和对应业务逻

2020-07-09 12:46:55 1210

原创 接口和抽象类(设计角度来分析)

1.抽象类和接口的语法特性抽象类不允许被实例化,只能被继承.它可以宝行属性和方法.方法既可以包含代码的实现,也可以不包含代码的实现.不包含代码的实现叫做抽象方法.接口不能包含属性,只能声明方法,方法不能包含代码实现.类实现接口的时候,必须实现接口中声明的所有方法.2.抽象类和接口存在的意义抽象类是对 成员变量和方法的抽象,是一种is-a关系,是为了解决代码复用问题.接口仅仅是对方法的抽象,是一种has-a的关系,表示具有一组行为特性,是为了解决解耦问题,隔离接口和具体的实现,提高diamante

2020-06-30 14:41:05 216

原创 webSocket

建立连接@Configuration@EnableWebSocketMessageBrokerpublic class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/wypWebSocket...

2020-06-09 23:42:47 122

原创 ajax传输数据类型 及后端接收类型

1.使用json对象传输ajax @RequestParam{} json 对象 var form = {};form.name="1q23";form.age="2";form.sex="234"$.ajax({ url: "./getForm", data: form, type: "post", });@RequestParam Map&...

2020-06-07 23:26:41 1824

原创 elasticSearch总结(win7)

Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本 身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实 现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得 简单。安装es可视...

2020-04-20 14:31:25 157

原创 数据库高级

--DDL:数据库定义语言--描述主要的数据库对象--创建表--描述各种数据类型--修改表的定义--删除 ,重命名和清空表--常见的对象--表 基本的数据存储集合由行和列组成--视图 从表中抽离出的逻辑上相关的数据集合--序列 提供有规律的数据(一般用作主键的值 )--索引 提高查询效率--同义词 给对象起别名--命名规则--表名和列名--必须以字母开头-...

2019-03-12 20:53:57 637

原创 Spring

Spring简介:Spring是一个开源的轻量级应用框架,其目的是用于简化企业级应用程序的开发,减少侵入..Spring提供了IOC和AOP应用,开发者将组件的耦合度将至最低,即解耦,便于系统日后的维护和升级..Spring为系统提供了一整体的解决方案,开发者可以利用它本身提供的功能外,也可以与第三方框架和技术整合应用,可以自由选择采用哪种技术进行开发.Spring框架可以完全接管M...

2019-02-18 20:56:53 121

原创 hibernate

Hibernate简介什么是Hibernate.Hibernate是数据访问层的框架,对JDBC进行了封装,是针对数据库访问提出的面向对象的解决方案.Hibernate的作用使用Hibernate可以直接访问对象,Hibernate自动将此访问转换成sql执行,从而达到间接访问数据库的目的,简化了数据访问层的代码开发.Hibernate和jdbc的对比.Hibernate和m...

2019-02-18 20:49:35 233

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除