自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 PDF转PNG

PDF2png 工具类。新增main方法测试。

2023-04-04 16:37:21 274

原创 无损压缩PNG

【代码】无损压缩PNG。

2023-04-04 16:29:00 380

原创 oracle创建表空间

表空间

2023-02-27 10:55:00 397

原创 Zip加密压缩

zip压缩

2022-10-28 17:09:18 1117

原创 JAVA补充位数

【代码】JAVA补充位数。

2022-09-21 14:50:07 184

原创 IDEA上合并Git分支

master合并bug001分支切换master分支合并001分支拉取分支步骤:在项目上右键,Git -> Repository -> Pull在更新代码的时候,选择001分支代码,合并到当前分支master,点击PullPush到远程从001分支更新代码到当前分支master后,已存到本地仓库,push到远程分支 Git -> Repository -> Pushdevelop合并master分支切换develop分支原则上develop分支的代码必须和m

2022-05-11 11:39:02 475

原创 Git操作

1、git init 创建版本库创建一个空目录mkdir gitTest$ cd gitTest使用 git init命令,把这个目录变成Git可以管理的仓库PS D:\gitTest> git initInitialized empty Git repository in D:/gitTest/.git/2、git add 新增文件,并提交新增一个文件 readme.txtGit is a version control system.Git is free software

2022-05-10 19:00:04 293

原创 @DateTimeFormat 和 @JsonFormat 注解

@DateTimeFormat前端时间控件传值到后台,如,前端传了一个字符串 “2022-04-20 08:03:43”,后台转化为Date: Wed Apr 20 08:03:43 CST 2022,时间格式需要自己重新指定。public class DateVo{ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date date;}@JsonFormat后台指定时间格式给前端jackson在序列化时间时是按照国际标准时

2022-05-10 15:43:56 113

原创 springboot 整合ES

pringboot整个es有四种方法,分别是TransportClient、RestClient、SpringData-Es、Elasticsearch-SQL。官方推荐的是RestClient1 引入依赖创建SpringBoot工程,引入依赖,在spring-boot-dependencies中所依赖的ES版本位可能不一致,要改掉<!-- 将依赖版本号改成对应版本 7.4.2 --><properties> <java.version>1.8</

2022-03-28 17:11:32 8799 3

原创 docker下安装nginx

标题安装Nginx随便启动一个nginx实例,只是为了复制出配置docker run -p 80:80 --name nginx -d nginx:1.10 将容器内的配置文件拷贝到/usr/local/nginx/conf/ 下mkdir -p/usr/local/nginx/htmlmkdir -p /usr/local/nginx/logsmkdir -p /usr/local/nginx/confdocker container cp nginx:/etc/nginx/* /u

2022-03-25 11:00:13 3959

原创 RocketMq几种消息发送

1 基本样例1.1 消息发送1)发送同步消息这种可靠性同步地发送方式使用的比较广泛,比如:重要的消息通知,短信通知。public class SyncProducer { public static void main(String[] args) throws Exception { // 1.创建消息生产者producer,并制定生产者组名 DefaultMQProducer producer = new DefaultMQProducer("group1

2022-03-17 16:50:23 524

原创 git 过滤文件

我们在拉取git项目之后,用idea打开项目之后时,有些文件是我们不需要提交的新增一个.gitignore文件:HELP.mdtarget/!.mvn/wrapper/maven-wrapper.jar!**/src/main/**/target/!**/src/test/**/target/### STS ###.apt_generated.classpath.factorypath.project.settings.springBeans.sts4-cache###

2022-03-08 16:41:30 1396

原创 解决request流只能读取一遍的问题

文件上传的漏洞需要解决,需要使用过滤器来实现。在过滤器中对文件进行判断处理遇到一个问题,我这里读取了一遍文件之后,request流被读完了,导致真正获取文件的时候,获取不到使用包装类,重写import org.apache.commons.io.IOUtils;import javax.servlet.ServletInputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSer

2022-02-14 11:06:15 484

原创 原生JDBC根据实体与表字段映射关系来查询数据公共方法

数据源公共类:package com.montnets.emp.netnews.utils;import com.alibaba.druid.pool.DruidDataSource;import com.montnets.emp.netnews.bean.StaticValue;import org.apache.log4j.Logger;import javax.sql.DataSource;import java.sql.Connection;import java.sql.SQLE

2021-11-11 17:44:49 815

原创 sqlserver用bcp导出数据

EXEC sp_configure N'show advanced options', N'1' RECONFIGURE WITH OVERRIDEEXEC sp_configure N'xp_cmdshell', N'1' RECONFIGURE WITH OVERRIDE EXEC sp_configure N'show advanced options', N'0' RECONFIGURE WITH OVERRIDE-- 导出txt、xlsexec mast

2021-08-23 17:48:56 211

原创 linux上安装redis

1、环境准备:Redis是c语言开发的,安装redis需要c语言的编译环境,需要安装gcc的环境。yum install gcc-c++2、安装步骤:下载并上传到 /root下,并解压缩:[root@localhost ~]# tar zxvf redis-3.0.0.tar.gz编译:[root@localhost redis-3.0.0]# make安装:PREFIX参...

2021-06-23 15:21:50 52

原创 谷粒商城笔记-新手级教程(1/4)

分布式基础篇1、项目简介反映了需要创建的微服务以及相关技术。前后分离开发。前端项目分为admin-vue(工作人员使用的后台管理系统)、shop-vue(面向公众访问的web网站)、app(公众)、小程序(公众)商品服务:商品的增删改查、商品的上下架、商品详情支付服务优惠服务用户服务:用户的个人中心、收货地址仓储服务:商品的库存秒杀服务:订单服务:订单增删改查检索服务:商品的检索ES中央认证服务:登录、注册、单点登录、社交登录购物车服务:后台管理系统:添加优惠信息等2、环境

2021-06-18 16:04:16 1044 1

原创 属性文件操作之Properties与ResourceBundle

Properties与ResourceBundle两个类都可以读取属性文件中以key/value形式存储的键值对,ResourceBundle读取属性文件时操作相对简单。Properties该类继承Hashtable,将键值对存储在集合中。基于输入流从属性文件中读取键值对,load()方法调用完毕,就与输入流脱离关系,不会自动关闭输入流,需要手动关闭。/** * 基于输入流读取属性文件:Properties继承了Hashtable,底层将key/value键值对存储在集合中, * 通过put方

2021-06-15 21:17:47 76

原创 scheduleAtFixedRate和scheduleWithFixedDelay的区别

二者都是每隔多长时间执行一次任务,那么有什么区别呢?scheduleAtFixedRate:真正的间隔时间,是由任务的执行时间和设置的间隔时间长短来决定的,谁长取谁。也就是说,以上一个任务开始的时间计时,period时间过去后,检测上一个任务是否执行完毕,如果上一个任务执行完毕,则当前任务立即执行,如果上一个任务没有执行完毕,则需要等上一个任务执行完毕后立即执行。scheduleWithFixedDelay:真正的间隔时间,是任务的执行时间加上设置的间隔时间。也就是说,是以上一个任务结束时开始计时,p

2021-06-15 21:14:49 1181 1

原创 linux安装zookeeper

第一步:安装JDK 安装JDK第二步:将zookeeper的压缩包上传linux系统并解压安装包一般都在 opt目录下。[root@localhost opt]# tar -zxvf zookeeper-3.4.6.tar.gz 第三步:将文件解压目录拷贝至 /usr/local下[root@localhost opt]# cp -r zookeeper-3.4.6 /usr/local/第四步:进入zookeeper-3.4.6目录,创建data文件夹[root@localhost zo

2021-06-15 21:09:07 107

原创 Java查询Mysql数据库时,查询条件带特殊字符(\ % ‘ * _)的处理方式

先贴上公共方法 public static String replaceStr(String str) { if(str != null && !"".equals(str)) { str = str.replaceAll("\\\\", "\\\\\\\\") .replace("_", "\\_").replace("\'", "\\'") .replace("

2021-06-05 18:38:12 3102 1

原创 Vue实现二级联动

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <!-- 引入样式 --

2021-05-21 17:45:03 501

原创 Docker实现web项目的容器化部署+将web项目打包成一个镜像

一、项目的Docker容器化部署查找 Docker Hub 上的 Tomcat 镜像root@UbuntuBase:/usr/local/docker/tomcat# docker search tomcatNAME DESCRIPTION STARS OFFICIAL AUTOMATEDtomcat

2021-03-18 15:00:53 1457 1

原创 keepalived离线安装openssl-devel

安装keepalived需要先安装openssl-devel需要的依赖包需要的依赖包 20 个左右:libcom_err-1.41.12-22.el6.x86_64.rpmlibselinux-2.0.94-5.8.el6.x86_64.rpmkeyutils-1.4-5.el6.x86_64.rpmkrb5-libs-1.10.3-42.el6.x86_64.rpmlibkadm5-1.10.3-65.el6.x86_64.rpmlibss-1.41.12-22.el6.x86_64.rp

2021-02-01 08:56:09 1575

原创 Keepalied + nginx 高可用主备模式、双主模式

环境介绍环境:准备两台虚拟机 (redhat7.2)、keepalived-1.2.22.tar.gz、nginx-1.10.2.tar.gz替换redhat的yum源由于是redhat是收费的,所以要先替换yum源。可以参考我另一篇博客,此处不再赘述:替换yum源安装nginx可以参考我另一篇博客,此处不再赘述:linux上安装nginx安装好了后,为了区分,进入到/usr/local/nginx/html修改 ngxin的 首页79修改为:浏览器访问 7980修改为:浏览器访问

2021-01-28 09:15:39 268

原创 linux上安装nginx

一、nginx的安装1、环境准备:需要安装gcc的环境。yum install gcc-c++第三方的开发包。n PCREPCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。yum install -y...

2021-01-27 16:50:14 90 2

原创 RedHat7 替换yum源

最近需要使用 RedHat6.7 虚拟机,红帽 使用yum源需要注册。网上找了很多替换yum源的博客,发现截止笔者发文,redhat 6 已经废弃。查看 阿里源和网易源 :没办法,只能升级到 redhat7 。这里记录一下,替换yum源的步骤。1、删除源rpm -aq|grep yum|xargs rpm -e --nodeps 2、去上面上的两个网址,去找以下的包,可能会有小版本的变化rpm -ivh --force --nodeps python-iniparse-0.4-9.el7.n

2021-01-26 16:31:18 86

原创 7种结构型模式之享元模式(六)

博客参考自:享元模式在面向对象程序设计过程中,有时会面临要创建大量相同或相似对象实例的问题。创建那么多的对象将会耗费很多的系统资源,它是系统性能提高的一个瓶颈。例如,围棋和五子棋中的黑白棋子,如果能把它们相同的部分提取出来共享,则能节省大量的系统资源,这就是享元模式的产生背景。定义与特点享元(Flyweight)模式的定义:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。优点相同对象只要保.

2021-01-19 18:09:11 65

原创 7种结构型模式之外观模式(五)

博客参考自:外观模式在现实生活中,常常存在办事较复杂的例子,如办房产证或注册一家公司,有时要同多个部门联系,这时要是有一个综合部门能解决一切手续问题就好了。软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这就是外观模式的目标。定义与特点外观(Facade)模式又叫作门面模式,是一种通过为多个复杂.

2021-01-19 16:52:43 93

原创 7种结构型模式之装饰模式(四)

上班族大多都有睡懒觉的习惯,每天早上上班时间都很紧张,于是很多人为了多睡一会,就会用方便的方式解决早餐问题。有些人早餐可能会吃煎饼,煎饼中可以加鸡蛋,也可以加香肠,但是不管怎么“加码”,都还是一个煎饼。在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修、相片加相框等,都是装饰器模式。在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰模式来实现。装饰模式的定义与特点装饰(Decorator

2021-01-19 10:06:51 97

原创 7种结构型模式之桥接模式(三)

在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩展困难。当然,这样的例子还有很多,如不同颜色和字体的文字、不同品牌和功率的汽车、不同性别和职业的男女、支持不同平台和不同文件格式的媒体播放器等。如果用桥接模式就能很好地解决这些问题。定义与特点桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以

2021-01-18 16:40:24 95

原创 7种结构型模式之适配器模式(二)

博客参考自:适配器模式在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配。例如,讲中文的人同讲英文的人对话时需要一个翻译等。在软件设计中也可能出现:需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当前系统的接口规范不兼容(客户端希望调用接口A来实现某种业务,现有的接口B已经实现了此类业务),如果重新开发这些组件成本又很高,这时用适配器模式能很好地解决这些问题。模式的定义与特点适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希.

2021-01-18 10:29:28 117

原创 7种结构型模式之代理模式(一)

在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。代理模式代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式,即通过代理对象

2021-01-15 17:14:24 86

原创 5种创建型模式之建造者模式(五)

博客参考自:建造者模式在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。例如,计算机是由 CPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的,采购员不可能自己去组装计算机,而是将计算机的配置要求告诉计算机销售公司,计算机销售公司安排技术人员去组装计算机,然后再交给要买计算机的采购员。生活中这样的例子很多,如游戏中的不同角色,其性别、个性、能力、脸型、体型、服装、发型等特性都有所差异;还有汽车中的方向盘、发动机、车架、轮胎等部件也多种多.

2021-01-15 10:13:58 100

原创 5种创建型模式之抽象工厂模式(四)

博客参考自:抽象工厂模式前面介绍的简单工厂和工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机、计算机软件学院只培养计算机软件专业的学生等。同种类称为同等级,也就是说:工厂方法模式只考虑生产同等级的产品,但是在现实生活中许多工厂是综合型的工厂,能生产多等级(种类) 的产品,如农场里既养动物又种植物,电器厂既生产电视机又生产洗衣机或空调,大学既有软件专业又有生物专业等。本节要介绍的抽象工厂模式将考虑多等级产品的生产,将同一个具体工厂所生产的位于不同等级的一组产品称为一个产品.

2021-01-15 09:22:09 53

原创 5种创建型模式之工厂方法模式(三)

现实生活中,原始社会自给自足(没有工厂),农耕社会小作坊(简单工厂,民间酒坊),工业革命流水线(工厂方法,自产自销),现代产业链代工厂(抽象工厂,富士康)。我们的项目代码同样是由简到繁一步一步迭代而来的,但对于调用者来说,却越来越简单。在日常开发中,凡是需要生成复杂对象的地方,都可以尝试考虑使用工厂模式来代替。注意:上述复杂对象指的是类的构造函数参数过多等对类的构造有影响的情况,因为类的构造过于复杂,如果直接在其他业务类内使用,则两者的耦合过重,后续业务更改,就需要在任何引用该类的源代码内进行更改,光

2021-01-15 09:09:01 85

原创 5种创建型模式之原型模式(二)

博客参考自:原型模式在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,原型模式的定义与特点原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。原型模式的优点:Java 自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加.

2021-01-14 17:45:21 55

原创 5种创建型模式之单例模式(一)

博客参考自:单例模式创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成。就像我们去商场购买商品时,不需要知道商品是怎么生产出来一样,因为它们由专门的厂商生产。单例模式的定义与特点单例(Singleton)模式`的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费.

2021-01-13 16:17:40 73

原创 设计模式七大原则之合成复用原则(七)

博客参照自:合成复用原则合成复用原则的定义合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP)。它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范。合成复用原则的重要性通常类的复用分为继承复用和合成复用两种..

2021-01-13 14:36:01 107

原创 设计模式七大原则之迪米特法则(六)

博客参照自:迪米特法则迪米特法则的定义迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP),产生于 1987 年美国东北大学(Northeastern University)的一个名为迪米特(Demeter)的研究项目,由伊恩·荷兰(Ian Holland)提出,被 UML 创始者之一的布奇(Booch)普及,后来又因为在经典著作《程序员修炼之道》(The Pragmatic Programmer)提及而广为人知。迪米特.

2021-01-13 11:43:02 79

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除