自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

冰生于水的博客

技术小白,如有错误,欢迎指出

原创 使用shell脚本一次性完成Docker容器构建

开发阶段测试发包是必不可少的环节,每次都需要停止之前的容器实例、删除之前的容器实例、删除之前的镜像、构建新的容器镜像、启动新的容器实例这么一条龙服务感觉很累,使用shell脚本是很好的选择,如下:#!/bin/bashIMAGE_REPOSITORY="你的项目名"IMAGE_VERSION="你的版本号"# 删除镜像function remove_image() { docker images | grep -E "${IMAGE_REPOSITORY}" | awk '{print

2020-07-07 18:03:44 609

原创 一次Oracle增加连接数的问题

使用如下命令可以设置连接数为500:alter system set processes=500 scope=spfile;但是出现问题,错误信息如下:ORA-32001: 已请求写入 SPFILE, 但是在启动时未指定 SPFILE最后发现问题在于启动方式,负责人搭建数据库环境使用的启动命令为:startup nomount pfile='/opt/oracle/app/product/11.2.0/dbhome_1/dbs/initorcl.ora'这是使用pfile方式启动

2020-07-07 17:45:21 56

原创 记录一次fegin调用错误

在使用SpringSecurity权限控制的同时使用fegin调用其他服务,产生错误。后台打印错误:org.springframework.security.authentication.InternalAuthenticationServiceException: com.netflix.client.ClientException: Load balancer does not have available server for client: xxx前端请求返回:{...

2020-05-10 11:30:28 208

转载 Linux安装Docker

安装Docker:https://www.jianshu.com/p/aed54960ff7a

2019-10-12 14:39:11 101

原创 Host is not allowed to connect to this MySQL server错误

虚拟机装好MySQL发现本地可以连接,远程却不行,开放3306端口后出现错误:Host 'xxx' is not allowed to connect to this MySQL server解决方案:本地登录MySQL之后执行如下命令:选中mysql数据库use mysql;更新hostupdate user set host = '%' where user ...

2019-10-12 14:04:42 73

原创 go mod下载依赖错误Get https://sum.golang.org

升级1.13版本之后下载依赖出现错误:verifying github.com/gorilla/websocket@v1.4.1/go.mod: github.com/gorilla/websocket@v1.4.1/go.mod: Get https://sum.golang.org/lookup/github.com/gorilla/websocket@v1.4.1: dial tcp...

2019-09-30 23:29:52 3363 1

原创 printf函数转换说明

记录下C语言的printf函数的转换说明,这些转换说明同样适用Go、Java等;转换说明 输出 %a 浮点数、十六进制数和p计数法 %A 同%a %c 单个字符 %d 有符号的十进制整数 %e 浮点数,e计数法 %E 同%e %f 十进制浮点数 %g 根据值的大小选择%e或者%f,当指数小于-...

2019-07-22 15:43:30 118

原创 MySQL执行引擎对比与SQL优化

执行引擎对于一个中级Java开发者来说SQL优化已经是面试必问了,而最近的一次面试也有问到MySQL执行引擎,还真有点答不上来,话不多说,活到老学到老,又是一波查漏补缺,不得不说路还长。首先简单了解下MySQL执行引擎,首先MySQL执行引擎分类比较多,InnoDB(重要)、MyIsam(重要)、Memory、Mrg_Myisam、Blackhole等,虽然看着多,不过在日常学习和使用过程...

2019-07-03 21:08:29 1292

原创 Java中的锁优化(偏向锁、自旋锁等)

一次面试中有被问到Java中的偏向锁、自旋锁等,特地查了下资料,发现这都是Java虚拟机的锁优化,查漏补缺,写篇博客记录下。1.偏向锁概述:是针对加锁操作的优化,在一次线程获得锁时,那么该锁进入偏向模式,当该线程再次请求时,会迅速获得该锁,无需进行任何同步操作,提高程序性能; 适用场景:锁竞争不激烈的场合,如果每次都是不同的线程来请求锁,则会导致偏向锁的失效; 使用方式:Java虚拟...

2019-07-02 10:27:45 153

转载 GO语言入门教程

原文地址:https://blog.csdn.net/tennysonsky/article/details/79293700(GUI)https://blog.csdn.net/tennysonsky/article/details/79103434

2019-06-06 08:44:25 732

转载 使用Git上传项目到Gitgub

原文:https://www.cnblogs.com/cxk1995/p/5800196.html

2019-03-30 10:25:35 183 1

转载 JDK5-12新特性

原文:https://www.jianshu.com/p/a051a2f0c3ab

2019-03-29 12:05:37 665

转载 Vue项目打包

原文:https://blog.csdn.net/qq_41115965/article/details/80796310

2019-03-21 11:29:55 89

原创 MongoDB实现主键自增

由于MySQL的使用习惯,导致在使用MongoDB的过程中没有自增长的ID十分不爽,而自动生成的序列则又没有什么可读性,恰巧在看书的过程中发现有讲到,所以记录下。第一步:自定义一个自增长标识,Java的注解就是一个非常优秀的选择,代码如下:package com.lsm1998.userservice.mongo;import java.lang.annotation.Elem...

2019-03-17 12:27:24 1228

原创 Class文件解析(手写一个Class文件解析器)

学习JVM的第一课便是Class文件解析,这也是了解JVM执行引擎的基础,网上关于Class文件解析的文章也是数不胜数,这次就玩点不一样的,使用Java语言来写一个Class文件解析器,主要的目的是在于了解Class文件结构,使用什么语言倒是没什么所谓。在这里我不会介绍class文件中诸如常量元素结构、ConstanValue属性表结构等知识,这些随便一搜一大把,我只会介绍如何实现的有关步骤;...

2019-03-16 12:08:05 484 1

原创 自定义手写SpringBoot框架(带使用案例)

 过了个年,现在才想起来写博客,废话不多说,先谈一下开发环境与实现概况:开发环境:使用JDK11,IDEA2018,Mysql8.0,gradle5.0;实现概况:提供了Spring、SpringMVC、Mybatis、Log4j(半成品)可供选择的组件,均是自定义的,详情可以参见我的上一篇博客《自定义手写SSM框架2.0(带小案例)》;内嵌了tomcat8.5容器,web...

2019-02-21 14:44:17 366

原创 自定义手写SSM框架2.0(带小案例)

经过1.0版本的摸索后,开始了2.0版本的编写,由于1.0版本只求功能的相似,所以代码没有什么层次可言,可读性也比较差,从而在设计2.0版本的时候首先从架构出发,一定程度上借鉴了Spring和Mybatis的架构设计,大大提升了代码的可读性。首先对比下与官方的功能差异:Spring方面:IOC容器基本的注册、注入组件、注入属性等; 简单的AOP切面; 与Spring相比,最大的功能...

2019-01-15 13:41:59 322 2

转载 CentOS7安装GO语言

网上看到一篇关于CentOS7安装GO语言的文章,十分简单,只需要对着按部就班就行了,特转载,文章地址https://www.jianshu.com/p/00d048eb9854

2018-12-13 12:57:27 2465

原创 自定义简单SSM框架的设计与实现

SSM内容:自定义SpringMVC+Spring(未实现AOP部分)+自定义ORM(仿Hibernate)记得刚开始学框架那会虽然老师反复强调框架只是一些通用工作的整体实现,通俗的说就是一些累活儿别人帮你做了,即便如此,我却总是打心底里觉得框架的实现是高深莫测的。随着学习的不断深入,开始阅读一些框架的源代码,试着揣摩设计者的设计思想,也慢慢的学着自己写一款,这是笔者第一次手写SSM框架,...

2018-12-11 19:17:02 227

原创 整合MongoDB错误:Consider defining a bean named 'reactiveMongoTemplate' in your configuration.

今天使用SpringBoot整合MongoDB时出现了如下错误:Description:Field userRepository in com.lsm1998.webflux.service.impl.UserServiceImpl required a bean named 'reactiveMongoTemplate' that could not be found.The in...

2018-12-08 14:01:39 1816

原创 Java类加载机制

记录下类加载机制吧,当是做下笔记。当执行一个helloworld程序时,首先需要通过javac调用编译器将其编译成class字节码文件,如果一个java文件内如果出现n个类,包括内部类,都会编译产生n个class字节码文件,这是一一对应的。类加载的步骤:加载阶段,把class文件读入JVM内存中的方法区,并生成对应的Class对象; 链接-验证:检查被加载类class文件数据...

2018-11-30 01:09:56 72 1

原创 Redis基本使用四(Lua脚本)

Lua脚本出现背景:Lua脚本出现于Redis2.6以上的版本,基于Lua语言,其作用在于很大程度上弥补Redis命令计算能力的不足,通过前面的程序可以看出Redis命令根据不同的数据结构有自增、自减、求并集、求交集等基本运算,这些计算不足以应付开发中各式各样的需求,而Lua脚本就在此情况下应运而生。 如何使用Lua脚本:Redis支持两种不同的方式运行Lua脚本,直接输入Lu...

2018-11-30 00:15:03 829

原创 Java设计模式

设计模式是一个软件设计师必须掌握的技能,笔者在目前的项目开发过程中并没有过多的使用,深感惋惜,借此文章总结下Java中常用设计模式相关知识点,为今后的项目开发预先铺路。设计模式可以说不是新的知识,是对开发流程等相关过程的简化,类似于Spring等框架,是为开发者省力的,系统越大作用越明显。Java中的设计模式通常分为三类:创建型,用于通过特定方式生成对象实例,例如单例模式、建造者模式、...

2018-11-26 17:05:26 83 2

原创 Redis基本使用三(流水线与发布订阅以及超时命令)

开发环境:JDK11; Redis3.2;使用流水线优化读写新能:与传统关系型数据库类似,每次客户端与服务端建立连接是需要开销的,对于每一个客户端而言,将多个操作封装在一次连接内是十分有必要的,从而产生了Redis的流水线操作,应用步骤如下:开启流水线; 加入命令; 执行流水线;程序如下: /** * 10619ms * 普通执行 *...

2018-11-20 14:47:45 321

原创 Redis基本使用二(事务与锁)

开发环境:JDK11 Redis3.2Redis事务机制:与传统的关系型数据库类似,NoSQL也存在许多并发访问的情况,因此出现了如何保证数据一致性的问题,处理的方式有很多。针对不同的业务层次有不同的解决方案:视图层:前端来保证数据一致性,笔者对前端技术熟悉程度还不足以搞定,暂不讨论; 业务层:可以使用线程同步来保证数据一致性; 持久层:在持久层解决数据一致性问题是最优的选择...

2018-11-20 12:47:36 301

原创 Redis连接错误:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to...

今天连接Redis出现了MISCONF Redis is configured to save RDB snapshots, but it is currently not able to...的奇葩错误,网上查了一下发现问题是:强制把redis快照关闭了导致不能持久化这个我也表示黑人问号,昨天还连的好好的,今天跟我说强制。。。解决方法如下:Redis客户端执行:config set ...

2018-11-19 10:52:07 2639

原创 Spring带返回值的异步任务

许久之前就接触Spring异步任务了,通过@Asyns注解标示一个异步任务,再通过配置类@EnableAsyns开启Spring异步支持即可实现简单的异步案例,但是对于带返回值的异步任务则无法通过这种简单的方法实现,此时需要异步方法返回Future对象,而获取的方法也有所不同,需要调用Future对象的get方法,这类似于通过Callable接口实现多线程(其实可以断定其底层就是基于Callabl...

2018-11-15 16:32:35 2429

原创 关于jdbc批处理的一些小问题

一个项目实现过程中难免遇到一些批量执行sql语句的情况,例如执行1万条插入语句,如果使用传统的插入方式则需要建立1万次连接,一次发送一条sql语句,这样是及其浪费性能的,接下来通过三种不同的方式模拟批量的插入语句,代码如下:package com.lsm1998.shop.test;import java.sql.Connection;import java.sql.DriverMan...

2018-11-14 11:12:43 182

原创 Redis基本使用一(数据结构常用命令)

Redis命令大全:http://doc.redisfans.com/index.html开发工具:Redis3.2; IDEA; JDK11; Gradle4.8;使用数据结构常用命令:1.创建项目,开启Redis服务端,导入相关坐标;重要坐标如下:implementation('org.springframework.boot:spring-boot-sta...

2018-11-13 13:55:03 96

原创 Redis基本概述

Redis的相对于传统关系型数据库来说具有高性能的读写效率,有效弥补了传统数据库的读写短板,对于一个并发量较大的系统来说,使用Redis是非常必要的; 1.Redis高性能的原因:基于ANSIC语言编写,接近于汇编语言的机器语言; 基于内存的读写,这是最关键的; 数据结构简单,规则较少; 2.Redis在Web项目中的应用场景:缓存常用的数据,起到实时缓存的效果,有效降低...

2018-11-12 20:29:46 71

原创 Redis实时缓存的一点小总结

笔者最近在写一个关于博客系统的毕业设计,其中用到了Reis实时缓存,对于一个博客首页信息来说,需要分页展示一些博客信息,而这些信息的变化性不是很大,所以采用Reis实时缓存可以有效缓解数据库访问压力;对于笔者的博客系统中的Reis实时缓存来说,笔者考虑的最佳Redis数据类型是字符串和链表。首先来分析下二者的优劣:字符串类型:可以将分页数据按照“页数-数据(list集合)”的形式保存,...

2018-11-12 17:52:48 2245

原创 Java模拟HTTP请求2

之前转过一篇基于HttpClient的Java模拟HTTP请求,使用的第三方jar文件,这次升级JDK11之后模拟HTTP请求不需要再导入第三方jar文件了,官方扩展了java.net包,所有的HTTP请求相关类均位于java.net.http包内,示例代码如下:package xyz.lsm1998.test;import java.net.URI;import java.net.h...

2018-10-30 21:47:49 2129

原创 SpringBoot实现短信发送

开发工具:IDEA、Gradle1.由于笔者使用阿里云的短信接口,所以需要去阿里云获取相关服务支持,每个新用户都有免费的初始条数,之后需要简单的配置签名与信息模版和AccessKey;2.导入相关jar包,在build.gradle文件内加入如下坐标: // 短信支持 implementation('com.aliyun:aliyun-java-sdk-core:3.7...

2018-10-30 21:18:40 3891

原创 SpringBoot实现邮件发送

开发工具:IDEA、Gradle1.首先需要导入相关jar包,在build.gradle内加入坐标:implementation('org.springframework.boot:spring-boot-starter-mail')2.在application.properties配置文件内加入配置:##### 邮箱接口配置 ##### 指定邮箱类型为qq邮箱spring...

2018-10-30 21:02:21 240

原创 IDEA使用Gradle打包war项目

点击选择IDEA右侧的Gradle窗口,如下:右键选择后选择执行,如果IDEA中没有这个窗口,则点击View -> Tool Windows -> Gradle,如下:打包后的war包位于/build/libs内,将其复制到tomcat的webapps文件夹内,启动tomcat即可。...

2018-10-30 20:53:16 7521 2

原创 Gredle搭建SSM框架(纯注解版)

接下来讲解基于Gredle工具、以纯注解的方式搭建SSM框架的开发环境。搭建环境:1.Gredle4.8;2.IDEA2018.2.3; 1.首先需要创建一个Gredle项目,勾选java和web两个选项,之后GroupID和项目名称自定义即可; 2. 在build.gradle文件中导入jar文件,如下:plugins { id 'java' ...

2018-09-09 14:39:48 297

原创 Maven搭建SSM框架(xml版)

接下来讲解基于Maven工具、以XML为配置文件的SSM框架的环境搭建。搭建环境:1.maven3.5.3;2.IDEA2018.2.3; 1.首先创建一个Maven项目,选择webapp,如下图,然后填写项目GroupID和项目名称即创建完毕; 2.导入相关依赖: <!-- junit单元测试 --> <dep...

2018-09-09 13:56:19 116

转载 IDEA打包jar可执行文件

原文地址如下:https://blog.csdn.net/xuemengrui12/article/details/74984731最后需要Build 

2018-09-06 21:06:00 73

转载 java模拟http请求

HttpClient是Apache Jakarta Common下的子项目,支持HTTP协议最新的版本和建议,原文地址如下:https://blog.csdn.net/zhuwukai/article/details/78644484

2018-09-06 21:05:01 338

原创 排序算法04-快速排序

上一篇文章讲述了归并排序,其实快速排序是基于归并排序的,二者都是基于分而治之的算法设计思想,下面讲述快速排序与归并排序的不同之处:1.归并排序分割数组属于“货真价实”的分割,创建了两个新数组接收分割后的两个新数组,而快速排序则通过下标标记来分割,不会创建新数组;2.归并排序分割位置是固定的,每次都是arr.length/2^n(n代表第几次分割),而快速排序通过枢纽元来分割(枢纽元也是一个...

2018-09-05 12:00:37 72

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