- 博客(41)
- 资源 (8)
- 收藏
- 关注

原创 设计模式23种之工厂模式(内附代码)
工厂模式个人理解总结:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。工厂模式包括三种:简单工厂模式又叫作静态工厂方法模式 工厂方法模式 抽象工厂模式优点和缺点:优点:工厂类包含必要的逻辑判断,可以决定在什么时候创建哪一个产品的实例。客户端可以免除直接创建产品对象的职责,很方便的创建出相应的产品。工厂和产品的职责区分明确。 客户端无需知道所创建具体产品的类名,只需知道参数即可。 也可以引入配置
2021-03-05 17:47:58
410

原创 设计模式23种之单例模式(内附代码)
单例模式个人学习总结:单例模式概述:单例模式可以保证在一个 JVM 中只存在单一实例。单例模式特点:单例类只有一个实例对象; 该单例对象必须由单例类自行创建; 单例类对外提供一个访问该单例的全局访问点。单例模式的优点:单例模式可以保证内存里只有一个实例,减少了内存的开销。 可以避免对资源的多重占用。 单例模式设置全局访问点,可以优化和共享资源的访问。单例模式的缺点:单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径,违背开闭原则(开闭原则,可
2021-03-05 14:41:27
407

原创 JAVA 生成数据库文档
最近因为一个二手项目没有数据文档困扰不堪,顾而寻找到一个神器screw来生成数据库表结构设计。亲测数据库支持如下MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB 可能还有其它吼pom文件需要引入如下包<!-- 数据库文档生成--><!-- screw核心 --><dependency> <groupId>org.freemarker</g
2020-11-11 17:19:36
300

原创 JAVA调restful接口实例
java 调resrful接口实则不难,本文介绍两种调用方式。 ①使用client调用②使用流方式调用。一 使用client调用,实现以下两点即可1 .下载所需jar包,下载地址为本文所选版本为1.19.1。https://jersey.github.io/download.html2. 注意返回格式是json还是xml或其它。 废话不多说,请看代码:...
2018-06-29 16:01:02
6310

原创 解决登陆时sql注入漏洞
解决登陆sql注入漏洞注册账号时要限制注册账号和密码的约束 只能为数字加字母,不能让其它字符存入数据库,这样方便与数据库的管理,及用户名密码规范。废话不多说直接上代码 (后台用正则过滤掉非法字符,简单粗暴解决登陆时sql注入问题)String regExLoginName = "^[A-Za-z0-9_]+$";//登陆密码正则验证String r
2017-08-25 15:40:35
895

原创 后台验证码实现,附代码详解
验证码后台验证登陆页面的验证码一直是大家头痛的问题,目前多数的验证码走的都是前端验证,但前端验证有许多危险漏洞,本文是一个简单的后台验证码实现,详细请看如下所述。
2017-08-22 10:22:19
13657

原创 java DES 加密解密算法及报错 Given final block not properly padded
解密的时候报错: javax.crypto.BadPaddingException: Given final block not properly padded 该异常是在解密的时候抛出的,加密的方法没有问题。 但是两个方法的唯一差别是Cipher对象的模式不一样,这就排除了程序写错的可能性。再看一下异常的揭示信息,大概的意思是:提供的字块不符合填
2017-01-10 15:50:22
20135
2
原创 HashMap和ConcurrentHashMap(个人学习使用)
hashmap 数组+链表默认大小16如何进行存储?计算hash值 算出要存在数组上的位置,按照咱们通常的计算方式可能就是。hash%16 了。但大神的写法是(n-1)&hash其实大致是一个意思只不过这么计算更节省时间。n是数组初始大小16 减去1后转成二进制极为 1111(也就是转换二进制的1248) 咱们我所知的计算机二进制文件做&计算时,无论两个值短的那方会在前面用0补全,但无论0&1 还是1&0 计算结果都是1,只有1&1时计算结果才是1。(h
2021-03-20 23:21:24
222
原创 类加载过程(通俗易懂)
类的加载过程加载:loadclass 加载磁盘上的文件到内存中验证:检查文件格式是否正确,元数据验证(语法是否符合Java规范),确定语法含义,保证运气不会产生危害,符号引用验证。准备:给静态变量分配内存,赋予默认值解析:将二进制数据符号引用替换成直接引用,指向方法区的指针(也就是说和方法区进行使用指针交互)初始化:给静态变量赋值(也就是你之前代码里写的int a= 10 ,在这步才把10赋给a)使用:就是被调用卸载: 就是使用后被回收类的加载时机(也就是什么时候出发类被加载)访
2021-03-19 10:53:40
494
原创 Long类型转换丢失精度问题解决Jackson2
Jackson2全局转化long类型为String,解决jackson序列化时long类型缺失精度问题注意哦!是Jackson2import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;import org.springframewor..
2020-11-24 14:35:45
849
原创 sql 判断case使用
(case when sp.status != '' then (select label from scm_sys_dict where type = 'projectState' and code = sp.project_status) else '' end) as projectStatus,
2020-11-23 17:42:04
171
原创 SpringBoot+swagger2增强搭建
先看效果图POM配置<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <depend.
2020-11-23 17:19:56
501
1
原创 synchronized 对象锁和类锁的区别详细
synchronized 是一个关键字。synchronized 加到 static 方法前面是给class 加锁,即类锁;synchronized 加到非静态方法上是给对象上锁,即对象锁。对象锁和类锁是不同的锁,所以多个线程同时执行这2个不同锁的方法时,是异步的。所以我们用代码来演示下首先准备工作,先创建一个Task类 新建三个方法其中两个 是static修饰静态的。/** * @Title: dmdemo * @Description: * @author: liar.
2020-07-23 15:35:42
876
原创 Soring IOC和DI
在网上看了好多描述IOC和DI和文章,但感觉看他们的描述总感觉差点意思,所以我个人也总结了一些相关的概念,希望对面试或爱学习的小伙伴共勉。IoC 和 DI:IoC (Inversion of Control):大家常说就是控制反转。然而ioc不是一种新的技术,而是 Spring 的一种设计思想,这个相信大家使用过的小伙伴都应该知道。何为ICO?在传统的程序设计,我们直接在对象内部通过 new 来创建对象,是程序主动去创建依赖对象;而在 Spring 中有专门的一个容器来创建和管理这.
2020-06-19 23:02:29
292
原创 nacos 安装配置(简单易懂)
本文主要讲解Linux上安装alibaba的nacos先简单说一下:Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它是 Spring Cloud Alibaba 组件之一,负责服务注册发现和服务配置,可以这样认为nacos=eureka+config。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 从上面的介绍就可以看出,nacos的作用就是一个注册中心,用来管理注
2020-06-04 21:21:05
782
2
原创 SpringBoot之自动配置流程说明
之前我们一起看了Springboot是如何内嵌tomcat的今天我们来说一下SpringBoot 启动时自动配置正如我们看见的只要pom文件里引了你要的依赖在使用注解 @Autowired 时就能直接实例化使用 这是怎么做到的呢。我们下面就来一起看看。首先我们可以看见Springboot启动时只需要main方法里运行main方法就可以启动了然后加上了一个@SpringbootApplication的注解那么Springboot启动时的配置一定和这个注解有莫大的关系,我们跟进来..
2020-06-04 20:53:29
325
原创 SpringBoot之如何自动启动tomcat
首先我们要先理解Springboot和Spring mvc的区别SpringMVC项目构建一定包含三要素1 配置web.xml 启动时去扫描 2,3 文件2 配置application.xml 启动时进行bean初始化3 配置springmvc.xml 依赖注入而Springboot之所以能直接启动不需要做任何配置就是因为他把 2,3 两个事情自动执行了。这个后面文章会提及,今天主要只说以下如何启动的tomcat我们来直接看源码1 证明是Spring项目 然后执行run方...
2020-06-03 08:54:03
935
原创 深入简出 synchronized和lock区别
synchronizedsynchronized是关键字有以下三种使用方法: 静态方法加上关键字 类 实例方法(也就是普通方法)加上关键字 方法 方法中使用同步代码块 代码块 有两种加锁方式: 锁住类 锁住对象实例 1 实现的是非公平锁,...
2020-06-02 23:01:33
197
原创 JVM 深入简出(一)
栈: 存储基本数据类型(byte short int long float double char boolean)和引用类型堆: new出来的对象,数组,jvm只有一个堆区,并被所有线程共享。方法区域(又叫 静态区):所以class 字符串常量 和定义为static的,被所有线程共享, 存放程序中永远唯一的元素。JVM GC怎么判断对象可以被回收了?对象没有引用作用域发生未捕获异常程序在作用域...
2020-06-02 22:29:06
169
原创 zipkin持久化之mysql建表语句
官方定义的表 三张表 CREATE TABLE IF NOT EXISTS zipkin_spans ( `trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, thismeans the trace uses 128 bit traceIds instead of 64 bit', `trace_id` BIGINT NOT NULL,`id` BIGINT NOT NULL,`name`
2020-05-27 09:40:38
598
原创 redis基础和原理
存储结构大家一定对字典类型的数据结构非常熟悉,比如map ,通过key value的方式存储的结构。 redis的全称是remote dictionary server(远程字典服务器),它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。Redis的安装redis约定次版本号(第一个小数点后的数字)为偶数版本是稳定版,如2.8、3.0,4.0 奇数版本为非稳定版,生产环境需要使用稳定版;安装配置: **需安装tcl yum install tcl 、 y...
2020-05-19 10:53:42
230
原创 java特性封装、抽象、继承、多态理论
封装(Encapsulation)首先,我们来看封装特性。封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式(或者叫函数)来访问内部信息或者数据。这句话怎么理解呢?我们通过一个简单的例子来解释一下。下面这段代码是金融系统中一个简化版的虚拟钱包的代码实现。在金融系统中,我们会给每个用户创建一个虚拟钱包,用来记录用户在我们的系统中的虚拟货币量。对于虚拟钱包的业务背景,这里你只需要简单了解一下即可。在面向对象的实战篇中,我们会有单独两节课,利用OOP的设计思想来详细
2020-05-18 15:55:03
315
原创 Springboot 整合 RabbitMQ(一)
本篇主要rabbitMq相关的一些简单理论介绍,安装须知,provider消息推送实例,consumer消息消费实例,Direct、Topic、Fanout的使用。下一篇会讲解消息回调、手动确认等。安装主要需要几个介质,Linux环境上 需安装erlang、 rabbitmqserver、socat 大家根据版本下载不要一定要安装对应版本否则无法启动。Erlang 下载地址:https://www.erlang-solutions.com/resources/download.html安
2020-05-17 22:34:49
296
原创 ZooKeeper之Curator分布式锁和Leader选举实例
分布式锁分布式编程时,当遇到应用程序多机部署,于是当多个应用同时访问某一资源时,就需要某种机制去协调它们进行占用。例如,现在一台应用正在rebuild缓存内容,要临时锁住这个区域暂时不让其它应用进行访问;又比如调度程序每次只想一个任务被一台应用执行等等业务场景。下面的程序会启动两个线程x1和x2去争夺锁,拿到锁的线程会占用10秒。运行多次可以观察到,有时是x1先拿到锁而x2等待,有时又会反...
2020-05-07 16:08:06
431
原创 Zookeeper 之使用Curator 来操作数据存储和事件监听
Curator高度封装zookeeper客户端,对比之前的原生就非常nice。码来!~~~首先还是pom文件下载jar包<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</...
2020-05-06 18:22:03
654
原创 Zookeeper之原生连接、数据存储和事件机制
鉴于前面几篇博客已经将zookeeper单机和集群搭建完成,现在我们来了解下如何使用代码操作zookeeper本文是建立连接和数据存储直接开始干货:首先pom文件引入zookeeper依赖,我装的版本是3.6.0 大家根据情况来定。<dependency> <groupId>org.apache.zookeeper</groupId>...
2020-05-06 17:13:06
218
原创 ZooKeeper 安装配置集群搭建二
继ZooKeeper 安装配置集群搭建一 单机后继续搭建集群,本文主讲集群搭建、数据同步测试展示,集群配置文件配置。话不多说开整1
2020-04-30 14:37:43
244
原创 ZooKeeper 安装配置集群搭建一
对于ZooKeeper相信大家都有一个初步的认识 它是分布式协调服务的重要一环,用于协调各种中间件的,视为注册中心。官网即可下载https://zookeeper.apache.org/releases.html可根据个人喜好下载响应版本本文使用的是3.6.0 版本开始正题1 储存机制 首先对zookeeper的初步理解它的储存机制,它的存储为...
2020-04-30 14:35:26
218
原创 IDEA 的基本配置 看我这篇就够了!
1 配置编码问题2显示工具栏以及工具按钮栏3配置相关的工作空间4IDEA构建项目的时候默认生成的iml文件配置改成.classpath类型的文件5IDEA中导入jar的源码如果是Maven项目的时候,配置pom.xml会自动下载源码包,如果是javaWeb或者简单的java项目,自定义加入的jar是没有源码的,这时候手动添加源码包。6...
2020-04-29 16:50:19
237
原创 MAC使用Parallels 安装CentOS Parallels帐号无法登录
MAC使用Parallels 安装CentOS 无法登录看这里看这里 是不是这个错误,如果是那么恭喜你 找对地方了。mac使用parallels在线安装的Centos自动默认进来就是登录。其实已经内置里用户。我们需要修改root的帐号密码1 首先开机时到这个页面时按‘e’进入设置2 修改权限可以修改文件,和增加命令路径。将光标一直向下滑,将上图的ro改成r...
2020-04-27 09:38:37
2467
原创 RPC、 SOA概念
进程间通信(IPC,Inter-Process Communication)进程是计算机分配资源的最小单位RPC 和 rest 区别:REST是一种设计风格。RPC的思想是把本地函数映射到API,也就是说一个API对应的是一个function,我本地有一个getAllUsers,远程也能通过某种约定的协议来调用这个getAllUsers。至于这个协议是Socket、是HTTP...
2020-04-15 10:16:08
507
原创 分布式 CAP、BASE理论
Consistency 一致性 (顾名思义确保数据一致,不允许出现两台及以上服务上数据不一致)Availability 可用性 (在集群中一部分节点故障后,是否还能响应客户端的读写请求)Partition tolerance 容错性 (允许出错率的大小,允许出错率大则程序可以正常执行不会报错)三角形定理,三者只可...
2020-04-08 17:45:58
187
原创 SpringBoot+Mybatis 快速搭建 使用 easy code插件
本文主要讲解使用Easycode插件快速开发。项目使用mavenSpringBoot+mybatis+Druid 构建Easycode是idea的一个插件,可以直接对数据的表生成entity、controller、service、dao、mapper无需任何编码,简单而强大。1 安装Easycode我这里已经安装好了的。在这里也建议大家在安装一个插件 Lombok。...
2020-04-04 22:07:11
676
原创 JavaScript记住密码
js中如何记住密码:代码:<input class="text-input" type="text" id="username" value="" /><input class="text-input" type="password" id="password" value="" />
2018-07-25 15:37:01
900
原创 Java以SOAP方式调webservice实例
Java以soap调webservice实现需要两点一 导入jdk二 导入commons-iocommons-io下载地址:废话不多说直接上代码import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.In...
2018-06-29 16:15:43
3196
原创 nginx 配置https代理
我这里的需求是有A和B两台公网服务器,这两台服务存在网络策略可以访问。用户想访问B服务器必须通过A服务器来代理转发。用户请求A上的8767端口,跳转B的地址和18000端口。注意:配置下面前,需要自己申请证书,证书申请时要与自己服务器域名对应。http { include mime.types; default_type application/octet-stream;
2018-01-02 15:20:53
1392
原创 Mysql 服务 在服务列表里丢失解决办法
mysql使用一段时间后服务列表中找不到手动启动项解决办法1、打开cmd,切换到mysql的bin目录下2、 D:\Program Files\MySQL5.1\bin>mysqld.exe -installService successfully installed. (注意了:如果此结果不是Service successfully installed;而是Inst
2017-06-07 09:53:55
807
原创 linux环境下weblogic 部署程序出现java.util,zip.ZpException:error in opening zip file
解决该问题的思路: 1.检查各种配置信息,数据源,项目名和数据源名是否冲突等。 2.检查是否是jar 冲突,我这里是因为本地项目中的spring.jar 和linux上冲突,删除该jar 即部署成功。
2017-05-25 14:18:12
3532
原创 cmd 访问文件夹目录和文件命令
1.windows+R 输入cmd 进入命令控制台2 输入如D: 切换要进入的磁盘 3 然后输入dir显示D盘下的所有目录4 输入cd 360CloudUI要进入的目录5 输入 test.log.txt 然后要执行文件直接输入文件名回车即可(要是不知道文件名可以再输入dir命令显示)6 输入cd.. 返回上一级目录7 输入cd\ 返回根目录
2017-05-24 10:37:50
5074
原创 ssh框架设计流程 及hibernate 映射关系怎么写
1,了解功能,包括细节(要清楚需要做什么样的功能)。2,设计实体/表先设计实体,再生成表,叫正向工程(推荐)。或先设计表,再生成实体,叫反向工程。3,分析所有的功能到Action的方法的粒度(就是到每一个请求的粒度) 4,实现功能1,写出Action类并定义出其中的方法,并确定每个Action方法要做什么事。2,实现Action方法,确定出要使用的Service方法。
2016-11-02 15:27:31
462
SAP jco3.0 windows , Linux
2018-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人