- 博客(41)
- 收藏
- 关注
原创 设计模式之装饰模式
#####抽象类/** * @Author: chuan.bai * @Description 制作面条抽象类 * @Date: Created on 16:55 2021/4/1 * @Modified By: */public abstract class NoodlesAbstract { /** * 制作面条的方法 */ abstract void process();}#####基础类/** * @Author: chuan.
2021-04-02 11:06:25
128
原创 设计模式之建造者模式
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。#####步骤接口/** * @Author: chuan.bai * @Description 泡茶接口 * @Date: Created on 16:45 2021/3/26 * @Modified By: */public interfa
2021-04-01 16:40:09
141
原创 设计模式之单例模式
###单例模式的定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例####单例的使用场景:1.要求生成唯一序列号的环境2.创建一个对象需要消耗的资源过多3.需要定义大量的静态常量和静态方法####单例模式分为懒汉式和饿汉式两种:####饿汉式单例:/** * @Author: chuan.bai * @Description 饿汉式单例模式 * @Date: Created on 08:59 2018/3/14 * @Modified By: */public
2021-04-01 16:38:33
139
原创 设计模式之外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。#####抽象接口/** * @Author: chuan.bai * @Description 脸的抽象类 包含 耳朵 鼻子 眼睛等 * @Date: Created on 13:35 2021/3/26 * @Modi
2021-04-01 16:37:20
192
原创 设计模式之工厂模式
#####工厂类/** * @Author: chuan.bai * @Description 支付工厂 * @Date: Created on 10:58 2021/3/25 * @Modified By: */public interface PayFactory { void submitOrder(); void refundOrder(); void cancelOrder();}#####paypal实现/** * @Author: chuan
2021-04-01 16:28:24
70
原创 设计模式之观察者模式
#####被观察者/** * @Author: chuan.bai * @Description 邮件发送人 * @Date: Created on 15:03 2021/4/1 * @Modified By: */public interface EmailSender { /** * 新增需要发送邮件的人 * @param emailReceiver */ void addUser(EmailReceiver emailReceiver);
2021-04-01 16:26:30
97
原创 设计模式之模板模式
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。#####模板类/** * @Author: chuan.bai * @Description 定义组装电脑的工序 * @Date: Created on 15:58 2021/3/26 * @Modified By: */public abstract class AssemblingComputerTemplate { public abstract
2021-04-01 09:40:26
79
原创 设计模式之策略模式
定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。#####策略抽象/** * @Author: chuan.bai * @Description 策略抽象 * @Date: Created on 17:25 2021/3/24 * @Modified By: */public interface PayStrategy { void doPay(PayOrderRequest request);}#####提交支付单策略/** * @Author: chu
2021-04-01 09:38:56
88
原创 设计模式之责任链模式
####抽象处理者/** * @Author: chuan.bai * @Description 抽象处理者 * @Date: Created on 15:45 2021/3/24 * @Modified By: */public abstract class Handler { protected Handler nextHandler ; protected String stepName; //需要说明位于哪一步 public Handler( Str
2021-04-01 09:37:54
75
原创 设计模式之代理模式
售票处的抽象接口(抽象主题角色)/** * @Author: chuan.bai * @Description 售票处 * @Date: Created on 14:56 2021/3/24 * @Modified By: */public interface Ticketing { /** * 买火车票抽象类 */ void buyTicket();}火车站售票处(真实主题角色)/** * @Author: chuan.bai * @Desc
2021-04-01 09:36:53
77
原创 springboot自动装配流程源码讲解(以REDIS为例)
springboot找到了@EnableAutoConfiguration注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration //开启自动配置注解@ComponentS...
2020-03-11 23:51:22
574
原创 REDIS高可用集群的搭建和运维
#一、REDIS架构图redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。#二、安装REDIS从官网下载Redis的最新稳定版,本次操作使用的是5.0.7版本wget http://download.redis.io/releases/redis-5.0.7.tar.gz把压缩包放在/opt/目录下,解压压缩包,在opt下会生成redis-5...
2020-03-10 02:14:34
320
原创 Java对象比较器
public class LogUtils<T> { /** * 对象比较器 * 比较结果eg:1、字段名称loginName,旧值:liu,新值:gu;2、字段名称address,旧值:hunan,新值:neimenggu * @param oldBean * @param newBean * @param filterFi...
2019-09-09 10:05:04
141
原创 linux 定时 清理tomcat日志
1.编写清理日志的脚本#!/bin/bashecho 开始寻找日志echo 开始删除host-manager日志find /opt/tomcat8/logs -mtime +7 -name "host-manager.*.log" -exec rm -rf {} \; #找到超过7天的日志执行删除操作echo 开始删除localhost_access_log日志find /opt...
2019-09-07 14:41:52
634
1
原创 Docker 安装MYSQL
1.搜索docker hub 上的mysql镜像docker search mysql2.拉取mysql 5.6 镜像docker pull mysql:5.63.查看本地镜像docker images |grep mysql4.创建mysql配置文件存放目录,用于挂载docker上 mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf...
2019-09-07 14:16:42
127
原创 Docker 命令
安装docker方法下载docker wget -qO- https://get.docker.com/ | sh测试docker是否运行docker run hello-world查看所有容器docker ps -a运行交互式容器docker run -it ubuntu:15.10 /bin/bash进入容器docker exec -it 容器名或容器id/bin...
2019-09-06 11:01:19
265
原创 windows服务器tomcat 窗口日志输出日志文件中
1.进入到tomcat下的bin文件打开startup.bat文件把call "%EXECUTABLE%" start %CMD_LINE_ARGS%改为call "%EXECUTABLE%" run %CMD_LINE_ARGS% 。也就是 start–>run2.打开catalina.bat文件,查找%ACTION% ,一共有四处,在没处后面都加上>> %C...
2019-09-06 10:59:59
1526
原创 mysql8 连接报错 caching-sha2-password
mysql8出现 caching-sha2-password报错的解决办法修改加密规则ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;更新用户密码ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password...
2019-01-26 17:18:31
193
原创 解决Tomcat日志中文乱码的问题
前几天出了个问题, JAVA WEB应用在本地运行调试,控制台和tomcat日志是正常的,但是当项目部署到服务器时,tomcat日志文件,带中文的都乱码了,尝试了增加server.xml中的增加URIEncoding=“UTF-8”但是没什么效果,最后在catalina.sh文件中添加JAVA引用参数解决了这个问题,参数如下JAVA_OPTS="$JAVA_OPTS = -Dfile....
2019-01-16 08:29:20
3328
原创 解决MAC终端ssh连接服务器,空闲断线的办法
1.进入目录/etc/ssh2.用vim打开ssh_config配置文件vim ssh_config3.增加一条配置文件ServerAliveInterval 604.保存后即生效5.配置文件详细介绍Host *选项“Host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。ForwardAgent no“ForwardAgent”:设置连接是否经过验...
2019-01-09 08:42:18
2220
原创 Spring集成Redis缓存,提高查询效率
集成redis缓存后可以将数据库的查询接口,序列化到redis中,key就是注解中的参数,例如@Cacheable(“findUsers”): 存在redis中的key就是findUsers。缓存了这个结果之后再次请求这个方法就不会去数据库中查,而是从redis缓存中读取数据,这样就减少了跟数据库之间的交互。然后修改、删除、增加操作就会清除缓存,保持数据的一致性,同时有极大的提高了程序运行的效率...
2019-01-09 08:30:21
2174
原创 JAVA使用pipeline批量写Redis数据
最近遇到一个需求,需要把数据库中的手机号批量写入到数据库,使用了很多的方法都性能不佳或者出现连接池断开的问题,最后在网上找到了这个方法 public static void main(String[] args) throws Exception { //连接redis Jedis redis = new Jedis("127.0.0.1", 6380, 4...
2019-01-09 08:28:20
2215
原创 快速搭建Gogs服务器(替代gitlab)
首先说明下服务器环境为centos6.9mysql版本为5.1.71 .确定服务器内核uname -a2.使用yum安装gityum -y install git3.用命令行进入mysql创建gogs表$ mysql -uroot -proot&amp;gt; create user 'gogs'@'localhost' identified by '123456';&amp;gt; gr...
2019-01-05 09:42:07
938
原创 SpringBoot2.0.3 配置多数据源
#####application.yml配置文件server: port: 9090 servlet: session: timeout: 3600 tomcat: uri-encoding: utf-8spring: jpa: database: mysql show-sql: true hibernate: ...
2019-01-05 09:35:41
1125
3
原创 JAVA-仿微信九宫格头像
最近有个需求,需要App实现群头像仿微信九宫格排列,由于让客户端生成头像显示会比较慢,因此只能用服务端实现这个需求,但是网上找都不是很符合要求,于是自己动手改了下实现了该功能:public final class ImageUtil { /** * 图片的间隙 */ private static final int SIDE = 6; /** ...
2019-01-01 22:50:01
688
原创 Linux服务器重置MYSQL密码
在开发中,有时候会碰到mysql密码忘记的情况,这方面linux提供了比较便捷的重置密码方法1.停掉mysql服务sudo service mysql stop 2.以安全模式启动MySQL:sudo mysqld_safe --skip-grant-tables --skip-networking & 3.接下来就可以无密码登录mysql了mysql -u root...
2018-12-30 15:48:29
556
原创 Linux服务器搭建wordpress
1.首先从https://cn.wordpress.org下载最新的wordpres安装包2.将安装的文件传到服务器scp -r wordpress-4.9.4-zh_CN.tar.gz root@47.**.**.**:/opt/3.解压安装文件 tar -xvf wordpress-4.9.4-zh_CN.tar.gz4.安装mysqlsudo apt-get install...
2018-12-30 15:47:15
811
原创 Linux服务器上安装MYSQL,并且开启远程访问
1.登录linux服务器后更新源sudo apt-get update2.安装mysqlsudo apt-get install mysql-server mysql-client3.安装完成后,出现该界面,输入密码后,回车安装完成4.测试mysql是否安装完成sudo service mysql restart5.安装模块使apache支持mysqlsudo apt-get install lib
2017-08-26 19:39:50
1506
原创 过滤表情获取过滤后的字符长度(通过正则表达式)
import java.util.regex.Pattern;/** * Created by Basil on 2017/5/10 13:00 */public class GetInputContentLengh { //加入白名单 public static final String rex = "(\\[呵呵\\])|(\\[其他表情\\])"; public
2017-05-10 13:48:49
935
原创 spring boot 用war包部署到tomcat下详细教程(解决缺少web.xml报错的问题)
1.首先 修改pom.xml下的打包方式<packaging>war</packaging>2.添加servlet-api依赖 <!--添加servlet-api的依赖--><dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1
2017-03-25 10:59:59
17749
9
原创 mac系统升级到10.12后homebrew不能正常使用的问题
新的系统更新后对一些重要目录的权限进行了限制,原先安装的homebrew可能会出现一些问题,造成无法正常使用homebrew 附上一条安装homebrew命令/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"可尝试用这句话更改权限sudo chown -
2017-01-23 00:48:46
8060
1
原创 安装配置apidoc
1:首先需要安装node.js 网址: https://nodejs.org/en/#download2:输入命令进行安装 npm install apidoc -g3:生成doc目录 例子:apidoc -i ~/Tools/apidoc-master/ -o doc/ 格式: apidoc -i myapp/ -o apidoc/ -t mytemplate/ -
2017-01-21 10:59:57
1009
原创 MYSQL 查询 周,年,日的数据
最近在做一个排行榜(周榜日榜月榜)的接口,一直卡在周榜的查询上,找了很多资料终于解决了mysql 周榜查询的配置问题 接下来对mysql关于日期的查询sql语句做一个整理今天 select * from 表名 where to_days(时间字段名) = to_days(now());昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAY
2017-01-13 16:02:59
642
转载 spring定时器设置规则
org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运行时间,只需要设置其cronExpression属性。 一个cronExpression表达式有至少6个(也可能是7个)由空格分隔的时间元素。从左至右,这些元素的定义如下:1.秒(0–59) 2.分钟(0–59) 3.小时(0–23) 4.月份中的日期(1–31
2017-01-12 16:03:34
307
原创 解除spring-boot上传图片大小的限制
由spring官方文档可知,spring-boot在MultipartProperties配置文件中对最大上传大小做了限制需要在启动时增加一个配置类在启动类里增加以下类即可解决问题/** * 解除上传文件的限制 */@Configuration @ConditionalOnClass({ Servlet.class, StandardServletMultipartResolver
2016-12-29 13:41:10
1943
原创 Linux环境下 安装redis
1.在官网下载redis,官网地址:http://redis.io(也可以直接用wget http://download.redis.io/releases/redis-3.2.5.tar.gz)安装2.安装在/usr/local/src 下(一般源码都放在这个目录下)3.解压tar -zxf redis-3.2.5.tar.gz3.cd redis-3.2.5(进入redis
2016-11-08 18:57:38
288
原创 Linux环境下 安装配置tomcat
1.首先在官网下载对应的tomcat版本2.上传到服务器3.解压tomcatopt# unzip apache-tomcat-7.0.72.zip 4.修改tomcat服务器启动端口/opt/apache-tomcat-7.0.72/conf# vim server.xml5.启动tomcat如果碰到问题root@iZbp166hn1pk
2016-11-08 15:33:44
258
原创 MAC环境下安装MAVEN
1.从官网下载MAVEN 地址:https://maven.apache.org/download.cgi2.有四种文件格式:下载的是apache-maven-3.3.9-src3.解压缩apache-maven-3.3.9-src.4.打开终端配置环境变量export M2_HOME=/Users/qiandan/Documents/MAVEN/apache-maven-
2016-10-23 21:05:17
352
原创 Linux下安装配置jdk
1.从官网下载jdk的指定版本,官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html我选择的是这个版本2.在/usr/lib目录下新建一个jvm目录,将刚才下好的jdk版本拷贝过去3.配置环境变量3.1 vim /ect/profile3.2.在最
2016-10-11 13:10:59
275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人