- 博客(59)
- 资源 (10)
- 收藏
- 关注
原创 CentOS 8 上用 Docker 部署 Spring Boot
1. 环境CentOS 8.2Maven 3.6.3Spring Boot 2.3.4.RELEASEOpenJDK 1.82. Dockerfile 文件配置在项目根目录下(与 pom.xml 同级)创建 Dockerfile 文件,编写以下内容:FROM java:8VOLUME /tmpARG JAR_FILEADD target/${JAR_FILE} app.jarENTRYPOINT ["java","-jar","/app.jar"]ENV TZ=Asia/Shan
2020-12-16 11:36:27 342
原创 注解方式基于Redisson实现分布式锁
一、定义注解类package com.example.demo.lock.annotation;import com.example.demo.lock.model.LockType;import java.lang.annotation.*;import java.util.concurrent.TimeUnit;@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Inheritedpublic @inte
2020-12-14 10:48:28 874
原创 实战设计模式之策略模式
一、定义策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。二、特点策略模式的主要优点如下。多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句,如 if…else 语句、switch…case 语句。策略模式提供了一系列的可供重用的算法族,恰当使用继承可以把算法族的公共代码转移到
2020-12-07 16:02:09 572
原创 实战设计模式之状态模式
一、定义状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。二、特点状态模式是一种对象行为型模式,其主要优点如下。结构清晰,状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原则”。将状态转换显示化,减少对象间的相互依赖。将不同的状态引入独立的对象中会使得状态转换变得更加明确,且减少对象间的相互依赖。状态类职责明确,有利于程序的扩展。通过定义新的子类很容易地增加新的状
2020-12-07 15:38:36 247 1
原创 Maven利用profile根据环境引用相应jar包
概述在开发中遇到这样的情况:某些jar包只需要在开发环境使用,其它环境不使用,比如Swagger包。这时候就需要我们根据不同环境打包不同的jar包。方法查阅了Maven的文档,发现使用Maven打包的时候可以利用profile配置区分环境。解决在pom.xml加入profile配置<profiles> <profile>&nbs...
2020-01-05 21:12:43 917 1
原创 Code
QYYBAC9D3J-eyJsaWNlbnNlSWQiOiJRWVlCQUM5RDNKIiwibGljZW5zZWVOYW1lIjoi6LaF57qnIOeoi+W6j+WRmCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiO...
2020-01-05 20:59:30 690
原创 深入理解MySQL索引原理和实现
我们在实际开发工作中离不开数据库,当用到数据库时又不得不提索引,而索引在数据库中是不可或缺的。但索引具体是怎么实现的呢?又是如何起作用的呢?这篇文章主要探讨这些相关问题。1. 什么是索引索引(在 MySQL 中也叫做“键(key)”)是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。要理解 MySQL 中索引是如何工作的,最简单的方法就是去看看一本书的“索引”部分:如果想在一本书...
2019-12-26 01:37:52 242
原创 回形取数
问题描述逆时针打印出矩阵数字,回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输出格式输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入1 2 3 4 5 6 7 8 9 样例输入1 4 7 8 9 6 3 2 5 样例输入1 2 3 ...
2019-11-12 01:51:09 1185 1
原创 计算斐波那契数列的几种方法
一、递归private static long f1(int n) { if (n < 1) { return 0; } else if (n < 2) { return 1; } else { return f1(n - 1) + f1(n - 2); }}二、缓存private static ...
2019-10-27 00:28:56 1294
原创 ForkJoin详解及应用
ForkJoin是由JDK1.7后提供多线并发处理框架。主要用于并行计算中,和 MapReduce 原理类似,都是把大的计算任务拆分成多个小任务并行计算。分解分解分解汇总汇总汇总复杂计算计算计算计算结果集应用场景计算1~10的和,每组计算3个,代码如下:public class ForkJoinExample extends RecursiveTask<Integer> {...
2019-10-19 23:03:13 913
原创 BlockingQueue详解及应用
java.util.concurrent.BlockingQueue 接口有以下阻塞队列的实现:FIFO 队列 :LinkedBlockingQueue、ArrayBlockingQueue(固定长度)优先级队列 :PriorityBlockingQueue提供了阻塞的 take() 和 put() 方法:如果队列为空 take() 将阻塞,直到队列中有内容;如果队列为满 put() 将...
2019-10-19 18:21:08 493
原创 String,StringBuilder,StringBuffer的区别
StringString 类不可变,内部维护的char[] 数组(JDK 9 以后是 byte数组)长度不可变,为final修饰,String类也是final修饰,不存在扩容。字符串拼接,截取,都会生成一个新的对象。频繁操作字符串效率低下,因为每次都会生成新的对象。StringBuilderStringBuilder 类内部维护可变长度char[](JDK 9 以后是 byte数组) , 初...
2019-10-19 16:58:11 127
原创 容器
CollectionextendsimplementsextendsextendsextendsimplementsimplementsextendsimplementsextendsimplementsimplementsimplementsextendsextendsextendsimplementsCollectionIterableTreeSetNavigableSetSortedSet...
2019-10-19 16:54:36 211
原创 数据类型
基本类型类型长度范围默认值byte8-128~1270short16-32768~327670int32-231~231-10long64-263~263-10Lfloat32~0.0fdouble64~0.0dboolean~true (1)\false (0)falsechar16...
2019-10-19 16:50:37 238
原创 Java并发编程之CountDownLatch,CyclicBarrier,Semaphore的理解及应用场景
java.util.concurrent(J.U.C)大大提高了并发性能,AQS (AbstractQueuedSynchronizer) 被认为是 J.U.C 的核心。CountDownLatch用来控制一个或者多个线程等待多个线程。维护了一个计数器 cnt,每次调用 countDown() 方法会让计数器的值减 1,减到 0 的时候,那些因为调用 await() 方法而在等待的线程就...
2019-10-19 00:03:29 541 1
原创 Docker 安装 Nginx
一、安装拉取官方的镜像docker pull nginx查看已下载的镜像docker images启动 Nginx 容器docker run --name nginx-test -p 8080:80 -d nginx二、部署1.创建目录 nginx, 用于存放后面的相关东西mkdir -p /data/nginx/www /data/nginx/logs /data/ng...
2019-05-29 17:46:09 1509
原创 高可用微服务系统架构
ModaModa 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的常用组件,方便开发者轻松使用该系统架构来开发分布式应用服务。主要功能接口网关:基于 Spring Cloud Gateway 的网关作为流量的入口,在微服务系统中有着非常重要的作用,网关常见的功能有路由转发、权限校验、限流控制等作用。配置管理:基于 Nacos 实现统一维护配置、API网关动态配置。...
2019-05-20 15:56:29 835
原创 解决MySQL报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents
一、问题描述:MySQL默认安装是没有设置时区的,采用 Connector/J 8.0 驱动要求指定时区,否则会报错。可以执行以下SQL语句查询show variables like '%time_zone%';未设置时默认为SYSTEM二、解决办法:在 my.ini 文件中加入时区设置项,重启MySQL服务即可解决[mysqld]default-t...
2019-04-28 23:00:30 912
原创 让IntelliJ IDEA提示自定义Spring Boot Starter的属性
引言在某些情况下会自定义 Spring Boot Starter,希望使用的时候有提示。引入相关包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artif...
2019-04-28 16:57:40 2303
原创 Maven利用profile根据环境引用相应jar包
引言在开发中遇到这样的情况:某些jar包只需要在开发环境使用,其它环境不使用,比如Swagger包。这时候就需要我们根据不同环境打包不同的jar包。方法查阅了Maven的文档,发现使用Maven打包的时候可以利用profile配置区分环境。解决在pom.xml加入profile配置<profiles> <profile> <id...
2019-04-27 18:15:32 4589
原创 GitLab使用现有Nginx配置HTTPS访问
前言GitLab默认内置了Nginx,但有些情况下服务器本身已经安装过Nginx,想直接利用现有的Nginx配置HTTPS访问1、申请证书在阿里云申请免费的证书,并下载到服务器2、配置域名解析创建一条 git.example.com 地址解析3、设置外部访问地址在 /etc/gitlab/gitlab.rb 设置external_url 'https://git.example...
2019-03-28 12:31:51 6368
原创 POI导入Excel文件简单使用方法
一、Maven引入依赖<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version></dependency>&am
2018-12-05 09:54:52 315 2
原创 全链路跟踪之Pinpoint
一、前言1.1、缘由随着项目扩大和升级,系统架构也从最开始的单机模式进化到分布式架构,各个系统维护起来也比较费劲了,当遇到问题时无法快速定位问题点,这时迫切需要通过某些方法定位和跟踪系统,以及监控系统性能。实现方法有很多,可以自定义开发相关框架,也可以使用第三方开源的框架。如果是完全自己开发,短期内还无法完成,所以考虑使用第三方框架。1.2、调研调研了市面上几个同类框架,有:...
2018-11-05 21:05:51 7238
原创 CentOS搭建Sonar和Jenkins进行代码质量检测
一、SonarQube简介SonarQub e 是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。二、安装SonarQube(1)在官网下载安装包:https://www.sonarqube.org/downloads/(2)解压下载的zip包执行命令:unzip sonarqube-7.4.zip如果提示无效的命令,则需要先安...
2018-10-31 10:51:29 1002
原创 持续集成 之 Jenkins插件 Multijob plugin
由于项目采用分布式服务架构,后端拆分为对外提供接口的接口层和对内提供服务的服务层,而服务层项目A又引用项目B和C服务,这时发布时就要求先发布A,再发布B和C,最后再发布接口项目。经过一番查找,找到了Jenkins插件 Multijob plugin,可以完美解决该问题。(1)首先创建MultilJob Project (2)添加 MultiJob Phase(3)添加任...
2018-10-26 12:22:01 8926 5
原创 Jenkins复制项目
在实际生产过程中,通常是由一台服务器编译并发布到各个不同环境的服务器上。这时候会创建各个环境的发布项目,项目多的时候重新创建比较麻烦,这时可以利用插件复制项目:Copy project link ...
2018-10-23 10:15:02 6006
原创 IntelliJ IDEA配置Maven自动发布到Nexus
命令行输入参数:clean deploy -Dmaven.test.skip=true -e如果要指定pom.xml,则添加 -f pom_for_api.xml 参数clean deploy -Dmaven.test.skip=true -e -f pom_for_api.xml在C:\Users\logyo\.m2目录下创建settings.xml文件,设置帐号<?...
2018-09-23 15:04:15 4858
原创 Dubbo抛出自定义异常
在Dubbo服务接口上定义throws自定义异常 LoginResponse login(LoginDTO param) throws ServiceException;
2018-09-22 11:20:42 962
原创 Sping Boot 2.0 自定义错误页
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;import org.springframework.boot.web.server.ErrorPage;import org.springframework.boot.web.servlet.server.Configurabl...
2018-09-12 14:52:07 774
原创 Jenkins自动丢弃构建历史数据
把以前构建过的过时历史数据自动清除掉,保留最近更新的天数和个数。如下图:这样配置后,就只保留最近3天内的5个构建历史,避免一直保留沾满磁盘。...
2018-08-29 09:53:48 8812 1
原创 spring.profiles.active
使用spring.profiles.active来分区配置,比如dev、test、prod等环境 (1)在application.properties中加入spring.profiles.active=dev(2)通过命令行参数java -jar app.jar --spring.profiles.active=dev...
2018-08-17 15:26:11 7940
原创 MySql按条件统计数量
有如下设备信息表: 要求按status统计数量,查询结果返回一条数据,如下图所示: 可是使用如下SQL语句: SELECT COUNT(*) AS total, SUM(IF(status = 1, 1, 0)) AS status1, SUM(IF(status = 2, 1, 0)) AS status2, SUM(IF(status = 3, 1, ...
2018-07-29 15:03:28 50144 7
原创 Linux清空文件内容
在使用CentOS系统服务器时,有时候某些文件被进程占用,直接删除文件无法释放磁盘空间,所以可通过清空文件内容的方式处理。cat /dev/null > 文件名比如要清空data文件夹下的a.log文件,使用命令:cat /dev/null > /data/a.log再查看a.log文件,大小为0了。...
2018-07-20 15:24:16 17779 1
原创 IDEA常用插件
1、Free MyBatis plugin免费的MyBatis插件,可以方便的快速跳转到对应的XML,并可以生成XML。2、Rainbow Brackets彩虹括号,自动给代码块内括号加色。3、ZooKeeper查看ZooKeeper数据4、Statistic代码统计插件...
2018-07-19 19:10:32 300
原创 MySql模糊搜索结果按匹配度排序
SELECT *FROM mov_video_infoWHERE title LIKE '%魔兽%'ORDER BY REPLACE(title,'魔兽','')LIMIT 10 通过替换关键字为空字符串来改变排序规则。
2018-07-19 19:00:36 8235
原创 基于CentOS+Jenkins+Maven+SVN+Tomcat+Java的自动化持续集成
1. 准备工作CentOS 7Jenkins 2.7Maven 3.3.9SVNTomcat 7Java 1.72. 安装Jenkins2.1 安装sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.reposudo rpm --import https://jenki
2016-06-01 14:23:38 3777
原创 Quartz+Spring应用与集群
〇、前言使用SPRING的定时任务框架,如果是在分布式的环境下,由于有多台节点,会产生相同的任务,会被多个节点执行,这时需引入分布式的QUARTZ。一、Quartz集群部署实践Quartz与Spring结合使用,Spring通过提供org.springframework.scheduling.quartz下的封装类对Quartz支持。Quartz集群部署:Quartz集群中的每个节点是一个独立的Qu
2016-06-01 09:50:50 613
转载 mysql行列转换方法总结
在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本:create table tx( id int primary k
2015-07-02 18:05:53 481
原创 Java同步方法synchronized
在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。package test;import java.text.SimpleDateFormat;import java.util.Date;public class TestSynchronized { public static void main(String[] args
2015-04-28 17:03:43 600
26个人体英文字母(A-Z)
2010-04-01
程序员的SQLServer金典
2010-04-01
jQuery API
2010-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人