- 博客(63)
- 资源 (4)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 设计模式之责任链模式
模式的定义与特点责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,所以责任链将请求的发送者和请求的处理...
2019-04-24 14:52:52
172
原创 PC端网站应用开发对接微信扫码登录
一基本业务流程如下:二 ,有两种对接扫码页面的方式,第一种方式是javascript在页面引用微信平台提供的js 第二种是以接口形式转发到微信平台获取二维码首先第二种如下:/** *访问接口形式转发到微信获取二维码 * 请求微信扫码登录 (部署到正式环境时需要修改ConstantConfig的redirect_uri配置路径) * * @re...
2020-10-16 16:15:40
624
原创 GDAL的JAVA编译和调用
使用GDAL源码版本GDAL1.9.2,目标是将GDAL编译成支持Linux64位的JAVA应用程序的类库。 GDAL的安装 下载GDAL的源码包(http://trac.osgeo.org/gdal/wiki/DownloadSource)。本文档以GDAL1.9.2为例。将压缩包解压到指定目录,本文档的目录以<gdal-dir>表示。(1)安装g++,在ubun...
2019-09-29 18:28:52
2386
2
翻译 设计模式之观察者模式(Observer模式)
一.背景在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例子还有很多,例如,股票价格与股民、微信公众号与微信用户、气象局的天气预报与听众、小偷与警察等。在软件世界也是这样,例如,Excel 中的数据与折线...
2019-07-03 11:00:44
863
原创 SpringBoot基于tk.mybatis的通用API操作(基于反射的通用模糊查询)
一.背景在项目很多基本的操作时,编码费时费力,所以想简化基本的增删改查,让开发更加高效,这个插件里面封装好了我们需要用到的很多sql语句,不过这个插件是通过我们去调用它封装的各种方法来实现sql语句的效果。对于单表查询不需要写SQL语句,这样就不用像mybatis那样每次写一个接口就要写一条sql语句。这样大大减少了我们的工作量。只需要写特殊的sql二.搭建与使用tk.mybatis的...
2019-06-13 16:37:00
5987
原创 MyBatis 插件之拦截器(Interceptor)
一.背景在很多业务场景下我们需要去拦截sql,达到不入侵原有代码业务处理一些东西,比如:分页操作,数据权限过滤操作,SQL执行时间性能监控等等,这里我们就可以用到Mybatis的拦截器Interceptor二.Mybatis核心对象介绍从MyBatis代码实现的角度来看,MyBatis的主要的核心部件有以下几个:Configuration 初始化基础配置,比如MyBatis的别...
2019-06-12 16:30:50
87191
10
原创 JVM之HotSpot虚拟机对象的创建、内存布局和访问定位
背景在学习JVM知识时用以记录,回顾,以及抛砖引玉。一 对象的创建java是一门面向对象的编程语言,在java程序运行中无时无刻都有对象被创建。在语言层面上,创建对象(例如深度克隆,反序列化)通常仅仅一个new关键字而已。而当虚拟机遇到一条new指令时,首先将去检查这个指令参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否被加载,验证,准备,解析,初始化过,如果没有那...
2019-05-25 21:54:12
343
原创 Linux/Centos定时任务之Crontab
一.背景执行一些定时任务,crontab命令的功能是给定的计划周期内执行给定的命令。二.crontab涉及的配置文件/etc/crontab:文件这个文件一般用来安排由系统管理员制定的维护系统以及其他任务的crontab /var/spool/cron/:这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件...
2019-05-21 19:52:40
485
原创 kaptcha 验证码技术的应用
一.背景图形验证码的生成与使用(防止机器恶意攻击)二.代码(使用)1.添加Maven依赖<!--验证码 --><dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <...
2019-05-17 17:04:32
3284
4
原创 动态数据源切换(二):Mybatis不同Mapper映射不同数据源
背景面对业务需要,业务数据在不同的数据库里面,数据又要在系统里面整合所以需要根据不同的数据操作切换不同的数据源,因此根据Mapper不同切换不同的数据源,来操作对应的数据库图解代码实现Mybatis配置信息// Uplus数据源配置信息,@Configuration@MapperScan(basePackages = UqierpDataSourceConfig....
2019-04-26 11:03:42
4703
原创 docker安装nginx并配置https访问
1.在dockerhub上查询是否有自己需要的nginx版本#dockersearchnginx2.拉取仓库nginx镜像,不加版本号默认拉取最新的版本#dockerpull nginx3.启动nginx容器# docker run --detach \ --name wx-nginx \ -p 443:443\ -p ...
2019-03-06 09:25:02
6358
原创 国际化与异常提示结合
一.背景意义国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。 二.本文主要内容再搭建后台服务端异常框架时,考虑到产品中抽离所有地域语言,产品的拓展与...
2019-02-26 18:32:24
1490
原创 SpringBoot2整合Swagger2添加Header头属性字段信息,与添加字段属性描述
1.在SpringCloud Zuul网关整合Swagger在网关swagger-ui.html查看各个服务的接口文档的基础上补充添加头部信息,当我们需要传递获取Header头部携带消息时,也需要在Swagger上显示测试,所以测试Header这也是必要的;2.直接贴代码:@Configuration@EnableSwagger2public class SwaggerCon...
2019-01-18 09:03:52
12141
原创 浅谈java jvm垃圾回收(gc)
垃圾收集器(G1):首先它是面向服务端的,同时它是一种不会产生内存碎片的垃圾回收,类似于“标记-整理算法”,使用G1收集器时,Java堆得内存布局就与其它收集器有很大差别,它将整个Java堆划分为多个大小相等的独立区域(Region),虽然还保留有新生代和老年代的概念,但新生代和老年代不再是物理隔离的了,它们都是一部分Region(不需要连续)的集合。G1垃圾收集器的运行过程大致为: 1)初始...
2019-01-11 10:15:25
281
原创 SpringCloud Zuul网关整合Swagger在网关swagger-ui.html查看各个服务的接口文档
一.背景微服务服务众多,在测试接口时每个服务整合Swagger要单独去访问每一个服务获取接口文档有点繁琐,现在利用网关的也整合Swagger访问网关就可以获取到所有服务的接口文档就大大的便利了我们的开发二.使用1.对于Zuul 网关配置添加pom依赖:<!--swagger--><dependency> <groupId>io.s...
2019-01-11 09:51:02
6346
1
原创 一步教你将本地将镜像打到Linux中的docker仓库
二. Windows中操作远程linux中的docker(在本地将镜像打到Linux中的docker仓库)1.在linux服务器安装docker(Docker要求64位的系统且内核版本至少为3.10): a:Linux下如何查看版本信息, 包括位数、版本信息以及CPU内核信息、CPU具体型号等等。 # uname -a (Linux查看版本当前操作系统内核信息) ...
2019-01-05 16:00:21
4709
1
原创 一步教你Windows安装Docker,并部署应用
一.本地Windows电脑(Windows安装Docker,并部署应用)1.安装: Docker可以支持在mac、windows、linux上安装。但是在windows系统中Docker目前仅有win10专业版和企业版的安装包, win7/win8/win10家庭版需要通过docker toolbox(下载地址:http://mirrors.aliyun.com/docker-...
2019-01-05 15:57:40
25189
2
原创 一步教你Docker安装搭建RabbitMq
1.Docker 安装 RabbitMq a:注意获取镜像的时候要获取management版本的,不要获取last版本的,management版本的才带有管理界面 #docker search rabbitmq:management b:拉取官方的镜像,标签为management(先创建rabbitmq文件夹) #docker pull rabbitmq:m...
2019-01-05 15:55:55
526
原创 一步教你Docker安装搭建redis(单机版)
1.Docker 安装 Redis 方案一:使用docker拉取镜像 查找Docker Hub上的redis镜像 #docker search redis 拉取官方的镜像,标签为3.2(先创建redis文件夹) #docker pull redis:3.2 本地镜像列表里查到REPOSITORY为redis,标签为3.2的镜像 #docker...
2019-01-05 15:55:13
1408
原创 一步教你Docker安装搭建GitLab仓库(用来做SpringCloudConfig配置中心)
Docker 安装 Git(以下在Centos7上操作,前提是已经安装过docker) a:拉取官方的镜像 #docker pull gitlab/gitlab-ce:latest b:运行容器 #docker run --detach \ --publish 8443:443 --publish 8080:80 --publish 2222:22 \ --nam...
2019-01-05 15:53:30
1126
原创 SpringCloud2.0整合OAuth2.0
以下是把配置文件放在Git仓库,SpringCloudConfig配置中心拉取,动态刷新一.for pom.xml<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifact...
2018-12-25 14:21:37
2351
原创 一步教你SpringBoot2.0单元测试
一.导入必要依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId></dependency><dependency>
2018-12-19 11:07:51
2906
原创 动态数据源切换(一) :springboot服务端AbstractRoutingDataSource整合
背景当应对大的数据量与并发时常常采用读写分离提高数据库访问层的性能与压力,这里主要用到AbstractRoutingDataSource与自定义注解获取方法上的数据源名称来切换数据源,操作对应的数据库。图解代码实现一 基本配置类/** * 数据源枚举类 */public enum DataSourceType { /** * 只写库 *...
2018-11-27 10:01:29
1050
原创 二. fastDFS:springboot 整合fastDFS
一.引入官方客户端依赖<!--FastDFS--><dependency> <groupId>net.oschina.zcx7878</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27.0.0&am
2018-11-27 09:41:33
1185
原创 一. Mysql读写分离 :Linux上配置,通过binlog进行主从同步
mysql主从复制,读写分离配置 1.主数据库: a.在主数据库里创建一个同步账号 #每个从数据库会使用一个MySQL账号来连接主数据库,所以我们要在主数据库里创建一个账号,并且该账号要授予 REPLICATION SLAVE 权限,你可以为每个从数据库分别创建账号,当然也可以用同一个!) #下面来创建一个账号,账号名:repl,密码:123456,只允许19...
2018-11-26 20:14:59
904
原创 一 .fastDFS:Linux 搭建分布式文件存储FastDFS图片服务器以及配合nginx / 使用Nginx进行负载均衡
Linux 安装分布式文件存储FastDFS图片服务器以及配合nginx/使用Nginx进行负载均衡alfresco 虚拟网络编辑器修改网关 修改成对应的网关及ip:vim /etc/sysconfig/network-script/ifcfg-ens33 重启网卡:systemctl restart network ping 外网xshell ...
2018-11-23 17:12:02
519
原创 一键安装Linux/CentOS/Aliyun等等系统下Apache/Mysql/Nginx/PHP/Tomcat/Redis/JDK等组件环境
一.LNMP(偏PHP 包含Nginx/MySQL/PHP/Apache等)1. 一键安装命令环境 yum -y install wget screen2. 下载lnmp并执行相关安装命令(以下命令尾部./install.sh lnmp是安装包含Nginx、MySQL、PHP、phpMyAdmin环境) wget http://soft.vpser.net/lnmp/lnmp...
2018-11-23 17:03:04
429
原创 SQL Server 显示一直在执行中问题
一 sqlserver基本参数select * from sys.sysprocesses 视图中主要的字段: 1. Spid:Sql Servr 会话ID 2. Kpid:Windows 线程ID 3. Blocked:正在阻塞求情的会话 ID。如果此列为 Null,则标识请求未被阻塞 4. Waittype:当前连接的等待资源编号,标示是否等待资源,0 或 Null表示不需要等...
2018-11-17 11:02:03
9256
1
原创 SVN 统计一段日期或者版本内更改过的文件(方便阶段性更新到测试,正式环境)
可在Windows cmd下执行,前提是安装有svn命令格式如下: svn diff -r REVNO:HEAD --summarize http://svn-url例如:1) 检查从 724版本 开始到目前所有改动文件的列表 svn diff -r 724 --summarize http://192.168.xx.xx:xxx/svn/xx/trunk/xx > ...
2018-10-30 09:35:40
2285
原创 SVN 项目版本管理之trunk(主线) branch(分支) tag(标记)使用
应用场景:优异的跨平台支持,对windows平台支持非常友好。 简单易用,安装后稍微培训下就知道怎么操作。 代码,需求,文档,涉及稿都可以用svn进行管理,适合不同部门的技术非技术的同事协作。 当研发成本比较低,协作开发人数不多,开发人员对于版本管理的水平参差不齐的时候,或者对于代码的安全性要求更高一点的时候,适合用svnSVN仓库目录结构Repository:truck(主干|主...
2018-10-20 10:55:37
5823
2
原创 Notepad++ 多行一起编辑,或者多行头部或尾部添加删除数据
方法一:鼠标:alt+滑鼠左鍵拖拉選取。鍵盤:alt+shift+方向鍵。方法二:使用快捷键Ctrl+H打开“替换对话框”,在每行的开头添加内容。勾选左下角的“正则表达式”选项(注意一定要记得勾选)在“查找目标”里输入上尖号“^”,上尖号代表每行的开头在“替换为”里输入“(需要添加的内容)”然后点"全部替换"按钮,这样每行的前面就全部添加了(需要添加的内容)在“查找...
2018-09-12 10:52:44
44958
5
原创 Bootstrap Table 多页时实现换页选中且可回显勾中功能
一 背景在工作中利用Bootstrap Table 做数据列表时可选数据,但是换页时上一页数据不能携带和回显,只能操作选中当前页数据,造成不好的用户体验二 解决方案1)利用Bootstrap Table 提供的API监听选中与取消选中定义全局数组接收选中的行信息var select_rows = new Array();// 选中行时触发$('#certifica...
2018-09-03 10:59:55
8315
原创 SQL-Server数据库存储过程学习
一.在生产中涉及到SQL-Server数据库存储过程,顺便学习记录--创建存储过程 可生成当年所有日期,并且周末工作时间为0小时 ,其中HR_Calendar 为业务表CREATE PROCEDURE dbo.Auto_HR_CalendarAS SET DATEFIRST 1declare @i varchar(10) declare @j intdeclare @year i...
2018-08-30 20:01:21
3100
原创 volatile 关键字 内存可见性
一 .解释1.内存可见性(Memory Visibility)是指当某个线程正在使用对象状态 而另一个线程在同时修改该状态,需要确保当一个线程修改了对象 状态后,其他线程能够看到发生的状态变化。2. 可见性错误是指当读操作与写操作在不同的线程中执行时,我们无 法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚 至是根本不可能的事情。3.我们可以通过同步来保证对象被安全地发布。除...
2018-08-02 15:46:12
527
原创 PHP 导入excel,将数据存入数据库
一.前端代码1).基于Boostrap的BootstrapDialog/*导入Excel*/ $('#btnExcel_add').click(function () {// fileName为模板名字var url = "assessment/template/bkhdepartment_import_dialog.php?ac=" + "<?php echo $ac;?&...
2018-07-30 19:53:52
3302
原创 关于 web.xml里面标签的加载顺序
应用服务器启动时web.xml加载过程,至于这些节点在xml文件中的前后顺序没有关系,不过有些应用服务器,我曾碰到过的 websphere就严格要求web.xml的节点顺序,否则部署不成功,所以还是赞成按照web.xml标准格式写context-param --> listener --> filter --> servlet1、启动WEB项目的时候,应用服务器会去读它的配...
2018-07-21 15:35:23
1050
原创 SpringMvc 拦截器 Interceptor
一 简述:拦截器依赖于web框架,在SpringMVC中就是依赖于SpringMVC框架。在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用。由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。但是缺点是只能对controller请求进行拦截,对其他的一些比如直接访...
2018-06-13 09:57:25
742
2
原创 Httpclient工具类
package com.fang.utils;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.web.client.RestTemplateBuilder;import org.springframework.http.HttpEntity;import org.sp...
2018-06-12 20:30:30
535
原创 关于String, StringBuffer, StringBudiler(append源码)
1. String是典型的不可变类,被声明为final class,所有属性也是final的。由于不可变性,拼接裁剪都会产生新的String对象。由于String操作的普遍性,往往优化相关操作会对性能有明显影响。2. java为什么不推荐用+ 来拼接字符串? 因为Stirng是不可变类,每次拼接都会产生大量无用的中间对象,耗费空间而且效率低下。 新建、回收这些多余的对象会额外花费很多时间。 3. ...
2018-05-16 09:17:34
4956
原创 各省市数据-SqlServer版SQL语句数据
SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[Province]( [ID] [int] NOT NULL, [Name] [varchar](20) NOT NULL, CONSTRAINT [PK_Province] PRIMARY KEY CLUSTERED ( [I...
2018-05-15 20:25:05
755
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人