
JAVA
chuan.bai
这个作者很懒,什么都没留下…
展开
-
设计模式之装饰模式
#####抽象类/** * @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 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式(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 · 143 阅读 · 0 评论 -
设计模式之单例模式
###单例模式的定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例####单例的使用场景: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 阅读 · 0 评论 -
设计模式之外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。#####抽象接口/** * @Author: chuan.bai * @Description 脸的抽象类 包含 耳朵 鼻子 眼睛等 * @Date: Created on 13:35 2021/3/26 * @Modi原创 2021-04-01 16:37:20 · 196 阅读 · 0 评论 -
设计模式之工厂模式
#####工厂类/** * @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 阅读 · 0 评论 -
设计模式之观察者模式
#####被观察者/** * @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 阅读 · 0 评论 -
设计模式之模板模式
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。#####模板类/** * @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 阅读 · 0 评论 -
设计模式之策略模式
定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。#####策略抽象/** * @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 阅读 · 0 评论 -
设计模式之责任链模式
####抽象处理者/** * @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 阅读 · 0 评论 -
设计模式之代理模式
售票处的抽象接口(抽象主题角色)/** * @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 阅读 · 0 评论 -
springboot自动装配流程源码讲解(以REDIS为例)
springboot找到了@EnableAutoConfiguration注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration //开启自动配置注解@ComponentS...原创 2020-03-11 23:51:22 · 574 阅读 · 0 评论 -
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 · 321 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 · 636 阅读 · 1 评论 -
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 · 267 阅读 · 0 评论 -
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 · 1528 阅读 · 0 评论 -
解决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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
使mac版的MYSQL支持emoji表情
是mac版mysql支持emoji表情转载 2016-12-29 11:32:18 · 1303 阅读 · 1 评论 -
解除spring-boot上传图片大小的限制
由spring官方文档可知,spring-boot在MultipartProperties配置文件中对最大上传大小做了限制需要在启动时增加一个配置类在启动类里增加以下类即可解决问题/** * 解除上传文件的限制 */@Configuration @ConditionalOnClass({ Servlet.class, StandardServletMultipartResolver原创 2016-12-29 13:41:10 · 1943 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
安装配置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 · 1010 阅读 · 0 评论 -
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 · 17750 阅读 · 8 评论 -
过滤表情获取过滤后的字符长度(通过正则表达式)
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 阅读 · 0 评论 -
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 · 1128 阅读 · 3 评论 -
JAVA-仿微信九宫格头像
最近有个需求,需要App实现群头像仿微信九宫格排列,由于让客户端生成头像显示会比较慢,因此只能用服务端实现这个需求,但是网上找都不是很符合要求,于是自己动手改了下实现了该功能:public final class ImageUtil { /** * 图片的间隙 */ private static final int SIDE = 6; /** ...原创 2019-01-01 22:50:01 · 688 阅读 · 0 评论 -
Spring集成Redis缓存,提高查询效率
集成redis缓存后可以将数据库的查询接口,序列化到redis中,key就是注解中的参数,例如@Cacheable(“findUsers”): 存在redis中的key就是findUsers。缓存了这个结果之后再次请求这个方法就不会去数据库中查,而是从redis缓存中读取数据,这样就减少了跟数据库之间的交互。然后修改、删除、增加操作就会清除缓存,保持数据的一致性,同时有极大的提高了程序运行的效率...原创 2019-01-09 08:30:21 · 2176 阅读 · 0 评论 -
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 阅读 · 0 评论