自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 dockerfile 基于centos基础镜像构建mysql

构建准备准备mysql安装包和boost插件包,自行百度查询下载mysql国内下载镜像地址(这个下载速度更快):http://uni.mirrors.163.com/mysql/Downloads/MySQL-5.7/编写dockerfile构建文件时注意当前目录与mysql安装包处于同一目录下FROM centos:7.7.1908MAINTAINER This is MySQL#更新yum源安装软件包RUN yum -y update && yum -y install

2022-04-14 19:35:30 2567 2

原创 java 程序包 sun.xxx不存在

如果看到这种sun.xxx不存在,先查看自己的jdk是不是用了11版本都改成jdk1.8就好了

2021-06-02 10:59:20 5480 2

原创 jdbcTemplete 模板配合多数据源的使用

配置application.ymlspring: datasource: user: driver-class-name : com.mysql.cj.jdbc.Driver jdbc-url: jdbc:mysql://drdshbgadotr2wippublic.drds.aliyuncs.com:3306/user_center?useUnicode=true&characterEncoding=utf8&autoReconnect=tru

2021-04-20 09:42:30 936

原创 Logback configuration error detected;logging和log4j的依赖冲突 解决

首先是报错代码:"D:\workApplication\IntelliJ IDEA 2020.3\jbr\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always "-javaagent:D:\workApplication\IntelliJ IDEA 2020.3\lib\idea_rt.jar=62330:D:\workApplication\IntelliJ IDEA 2020.3\bin"

2021-04-14 13:52:57 2206

原创 ajax下后台无法进行重定向解决方法 response.sendRedirect无效

遇到的情景是在当前端发送ajax请求到后端,后端有拦截器拦截了该请求,但是拦截后不会执行跳转的代码,没有拦截器这个方法同样有用。步骤:思路:我们在响应头中自定义一个信息,前端拿到这个信息后就执行跳转代码。后端代码:public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { ..... 拦截逻辑省略

2021-04-02 14:33:52 1808

原创 JWT实现token登录并且将数据保存到前端浏览器

流程我们先在后台生成一个token,然后将token返回给前端在拦截器中将跳转页面请求放权前端拿到token后保存到本地浏览器中,然后在每个请求头加入token信息。登录接口/** * 用户登录操作 * @param userEo * @return */ @RequestMapping("/login") @ResponseBody public ResponseParam<UserVo> login2(UserEo userEo) {

2021-03-31 20:09:21 6835

原创 拦截器中无法使用service 解决方法

使用手动加载bean,BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());userService = (UserService) factory.getBean(“userService”);@Component@Slf4jpublic class UserInterceptor implements HandlerInter

2021-03-31 15:48:17 1249

原创 h2数据库被锁定 Database may be already in use: “Locked by another computer:

问题叙述最近使用h2数据库时总是遇到数据库被别的进程占用而导致连接失败,其实这个原因很简单,就是最开始使用h2数据库的表时会生成一个 表名.lock.db的一个文件,就是这个文件导致你连接不上,默认的文件位置在C:\Users\先生位置下,当然到你的电脑上就是C:\Users\你的用户名解决你要做的有两件事第一:把这个文件删除,前提是你先关闭对h2数据库的连接,不然删除了也会重新生成第二:设置成对文件不加锁FILE_LOCK=SOCKET,这样就不会产生这个lock文件URL = “jdb

2021-03-13 12:48:08 5407

原创 Spring源码学习(1)注解的使用

ioc容器的最核心思想资源不由使用的的双方进行管理,而是不适用资源的第三方。这样做的的好处有:第一:资源集中管理,实现资源的可配置和易管理。第二:降低了使用资源双方的依赖程度,即耦合度。...

2021-03-04 16:00:22 777 1

原创 easyExcel导入的时候处理空格行

在导入的监听器中进行处理通过反射得到对应的属性以及属性值,然后判断这些值是否为空,只要有一个不为空就判断这行数据不是空行,可以读取到集合中,但是当全为空时就不把这行数据加入集合。@selfpublic class ExcelDataListener<T> extends AnalysisEventListener<T> { public Map<Integer,ExcelImportSheetData<T>> sheetMap = Maps.ne

2021-03-02 11:24:17 11807 2

原创 springCloudAlibaba之nacos配置中心

配置中心将项目中的application.yml或者.properties文件的内容放入nacos中新建的配置文件中。Data ID:manage-auth-dev 这里的值不能乱写manage-auth:是配置对应的微服务在nacos中的名字,这样nacos才知道这个配置文件是给谁使用的-dev:是指开发环境项目中配置一个bootstrap.yml配置文件,删除原来的application.yml文件spring: # 配置完成后会从 manage-auth-dev.yml 的

2021-01-26 12:05:20 972 1

原创 springcloudAlibaba之gateway处理跨域请求

什么是跨域?在网关的配置文件中进行配置spring: application: name: gateway # 将本服务注册到 nacos 中 cloud: nacos: discovery: server-addr: 127.0.0.1:8848 username: nacos password: nacos gateway: discovery: # 让gateway通过 nacos 实现自动路由转发

2021-01-25 18:28:51 1631

原创 springcloudAlibaba之微服务认证方案

在微服务分布框架下经常会有多台tomcat,用户的登录信息如何存储就成为了一个问题,下面看看解决方法通过配置session来实现session复制,保证每台服务器上都存在着用户的登录信息通过增加缓存组件来实现,将用户信息存放到缓存组件中使用JWT来实现客户端存储微服务认证方案设计为防止密钥泄露可以将对应信息配置在nacos中JWT作用基于JJWT实现微服务JWT授权JJWT是一个对JWT进行封装的类库,可以通过其提供的api轻松的进行调用。依赖<!-- jjwt所需的依赖

2021-01-25 17:59:39 1314

原创 springcloudAlibaba之网关

没有网关的缺陷:用户需要了解每- -个微服务节点的IP端口等信息不具备负载均衡功能,无法实现水平扩容用户与微服务强耦合,微服务拆分后会影响到用户的使用重复开发授权/登录验证等功能对外暴露太多信息,系统安全性降低有网关的好处:用户只需要了解网关入口在哪里整个微服务体系对用户透明,后端实现与用户接口解耦内置负载均衡,可轻易水平扩容扩展统一的前置验证,轻松实现全局前置功能可针对需要对外开放接口,保证系统的安全springCloud gateway的优缺点:在发布在服务器上时,只能

2021-01-24 18:42:01 1466

原创 sentinel与nacos持久化

在流量控制那篇文章中,我们在sentinel中配置好A服务对应的限流策略后,如果A服务重启就会导致sentinel中配置好的策略丢失,所以需要持久化操作。流量控制可以有三种方法配置:一种是在sentinel控制台进行配置(服务重启则配置的策略丢失),一种是在代码中进行编写控制,还有就是从nacos中读取进行持久化配置。限流配置 [{“resource”:"/test", 需要限流的接口“limitApp”:“default”,“grade”:1, 阈值类型:1为QPS,0为线程数“cou

2021-01-23 17:11:41 3043

原创 springcloudalibaba之流量控制

alibaba微服务通过使用sentinel来进行流量控制,其底层使用actuator来进行监控在服务消费方引入依赖<!-- sentinel 流量控制依赖--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> <v

2021-01-23 14:47:43 1419 1

原创 springCloudAlibaba之ribbon

当我们在项目中引入openFeign时,这个里面就包含了ribbon。也就是说,当我们使用feign去调用其他服务时就默认使用了ribbon来负载均衡。在nacos中有一个服务有三个实例,当我们使用feign去访问这个服务时,默认就会采用轮询机制来循环访问。可在服务消费方添加对应日志,输出调用服务的iplogging: level: root: debugfeign: cilent: config: default: loggerLevel: H

2021-01-22 17:57:36 1328

原创 史上最详细的springcloud alibaba项目搭建以及入门nacos与feign

首先说明,本文章内容是搭建一个基于alibaba的微服务框架,只涉及nacos与feign的使用,不会搭建微服务项目的伙伴们可以来看看。nacos的安装下载请自行百度,网上教程很多。我们创建一个父项目,这个父项目下有两个子项目,一个用来注册到nacos,另一个利用feign从nacos中获取数据。创建父项目通过maven来创建一个父项目,创建完成后将src目录删除父 pom.xml 里的内容<?xml version="1.0" encoding="UTF-8"?><proj

2021-01-22 16:13:32 1670 2

原创 通过经纬度调用百度sdk api实现查询详细地址 Java

依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId>

2021-01-03 14:54:34 1251 1

原创 spring整合rabbitmq(需要的jar包,spring如何整合rabbitmq)

spring 版本4.2.0,rabbitmq版本3.5.6需要三个jar包,分别是 spring-rabbit-1.5.1.RELEASE.jar,spring-amqp-1.5.1.RELEASE.jar,rabbitmq-client.jarspring-rabbitmq.xml 配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"

2020-12-19 21:33:07 2182 1

原创 vue this is undefined

在使用axios经常会出现这个问题如下面代码data(){ return{ goods:{ title:null, subTitle:null, originalCost:null, currentPrice:null, discount:null, isFreeDelivery:null } }}, mounted:function() {//this is undefined axio

2020-12-13 11:40:18 419

转载 tomcat部署项目去掉项目名称,直接localhost不带项目名称访问!

第一步、去除端口号8080。将server.xml中的改为第二部、去除项目名称(例如,项目名称:projectName)在server.xml 里,…的标签之间添加标签注意:path="" 就是代表没有目录docBase就是项目名清空work/catalina/下所有东西(清空缓存)重新启动tomcat,就可以访问...

2020-12-04 16:35:39 676

原创 日志处理

通过AOP来实现功能1.记录请求的url2.记录访问者ip3.记录调用方法的classMethod和参数argspackage com.hgmj.workblog.aspect;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.ste

2020-10-04 22:01:38 117

原创 统一异常处理

先定义异常页面创建一个方法进行异常处理package com.hgmj.workblog.handler;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.core.annotation.AnnotationUtils;import org.springframework.web.bind.annotation.ControllerAdvice;import org.sprin

2020-10-04 17:57:14 94

原创 SpringBoot + Redis +注解+拦截器来实现接口幂等性校验

概念幂等性,通俗的说就是一个接口,多次发起同一个请求,必须保证操作只能执行一次比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处理重复回调普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次等等常见解决方案1.唯一索引 – 防止新增脏数据2.token机制 – 防止页面重复提交3.悲观锁 – 获取数据的时候加锁(锁表或锁行)4.乐观锁 – 基于版本号version实现, 在更新数据那一刻校验数据5.分布

2020-09-16 13:22:43 264

原创 java面试题

1. 操作系统1.1 进程和线程线程:是程序执行的最小单位,共享线程的数据空间进程:是系统资源分配的最小单位,拥有独立的数据空间2.java2.1 java基础2.1.1、为什么重写equals还要重写hashcode?HashMap中,如果要比较key是否相等,要同时使用这两个函数!因为自定义的类的hashcode()方法继承于0bject类,其hashcode码为默认的内存地址,这样即便有相同含义的两个对象,比较也是不相等的。HashMap中的比较key是这样的,先求出key的hashco

2020-08-31 20:10:43 515

原创 idea热部署方法

先添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>

2020-08-05 11:18:28 182

原创 jpa Can‘t resolve symbol ‘db_log‘

在使用jpa的时候出现了这个错误,发现我写的表losg需要对应你的实体类而不是数据库的表名@Entity如下:表名为db_log,但是你在自定义查询语句中from后面接的应该是Log ,这样就不会报错@Table(name = “db_log”)//表名public class Log extends base{}...

2020-07-22 21:44:12 229

原创 spring boot项目controller层无法转发到freemarker页面

解决办法:将freemarker后缀从ftl改成ftlh,问题解决 如:index.ftl->index.ftlhspringboot2的话是ftlh后缀,springboot1是ftl后缀

2020-07-21 16:16:35 303

原创 数据量很大,分页查询很慢的什么优化方案

准备工作为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明。表名:order_history描述:某个业务的订单历史表主要字段:unsigned int id,tinyint(4) int type字段情况:该表一共37个字段,不包含text等大型数据,最大为varchar(500),id字段为索引,且为递增。数据量:5709294MySQL版本:5.7.16 线下找一张百万级的测试表可不容易,如果需要自己测试的话,可以写shell脚本什么的插入数据进行测试。以下的 sql 所有语

2020-07-11 09:25:17 464

原创 SpringBoot+Mybatis常见错误(一): Invalid bound statement (not found)service

今天在运行springboot项目时说找不到service,我看了配置都没问题,后来发现是将service和service的实现类放在了两个不同的文件夹内,具体原因我也不清楚,但是我把实现类和接口放在一起就不会报错了...

2020-07-04 10:51:52 651

转载 IDEA工具代码不提示,不识别pom.xml文件(pom.xml图标不是M)或roperties没有绿叶子

IDEA工具代码不提示,无法自动识别pom.xml文件解决办法:1、打开idea工具找到设置Settings2、找到Compiler–>右边勾选Build project automatically3、应用保存退出。IDEA工具代码不提示,不识别pom.xml文件(pom.xml图标不是M)这样就可以了。如果还是不行的话把idea的省电模式关掉1、打开idea点击File2、找到下面Power Save Mode3、把Power Save Mode前面的√去掉就可以了。...

2020-07-03 16:32:49 1378 2

原创 @RequestParam详解以及加与不加的区别

以前写controller层的时候都是默认带上 @RequestParam 的, 今天发现不加@RequestParam 也能接收到参数下面我们来区分一下加与不加的区别这里有两种写法@RequestMapping("/list") public String test(@RequestParam Long parentId) { } @RequestMapping("/list") public String test( Long pa

2020-06-21 11:42:59 786

原创 RabbitMQ之订阅模式与主题模式,消息确认机制

1.订阅模式作用类似与微信公众号,你订阅了就可以接收到消息解读:1.一个生产者,多个消费者。2.每一个消费者 都有自己的队列3.生产者没有直搂把洧息发送到队列而是发到了交换机 转发器exchange4.每个队列都要绑定到交换机上。5.生产者发送的消息经过交换机到达臥列 就能实现一个消息到多个消费者消费1.2分发模式该模式下,生产者发送消息,多个消费者通过他们对应的队列获得消息,但是所获得的消息是一样的,不能指定将哪个消息给那个队列创建一个生产者public class send {

2020-06-10 11:55:33 1546

原创 RabbitMQ之java操作队列,接收和发送消息

1.简单队列1.1模型P:消息的生产者。红色的:队列C:洧费者。1.2连接上rabbitmq创建一个工具类来连接引入jar包或依赖<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit-test</artifactId> <scope>tes

2020-06-08 20:34:08 1395

原创 RabbitMQ之使用场景和安装

消息队列解决了什么问题?异步处理,应用解耦。流量削锋↓日志处理…RabbitMQ 使用场景#1. 解耦(为面向服务的架构(SOA)提供基本的最终一致性实现)场景说明:用户下单后,订单系统需要通知库存系统。传统的做法是,订单系统调用库存系统的接口。传统模式的缺点:假如库存系统无法访问,则订单减库存将失败,从而导致订单失败订单系统与库存系统耦合引入消息队列订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下单成功库存系统:订阅下单的消息,采用拉/推

2020-06-07 17:26:17 193

原创 java之多线程

多线程即在同一时间,可以做多件事情。线程的创建和启动方法一:继承Thread类创建线程类1.创建一个类,并继承Thread类,重写run方法,该run方法就是线程执行体2.创建类的实例3.调用该实例的start()方法注意:用这种方法创建的线程类的全局变量是不会共享的;类的Main方法是一个主线程;用户启动的多个线程的名字默认依次为Thread-1,Thread-2…Thread-npublic class scanner extends Thread{ public

2020-06-07 14:57:42 178

原创 java之IO遍

File类File类可以用来新建、删除、重命名文件和目录,但它不能访问文件内容本身,访问文件内容需要使用输入输出流访问文件名相关的方法String getName():返回File对象所表示的文件名或路径名String getPath():返回File对象所对应的路径名String getAbsolutePath():返回次Fille对象所对应的绝对路径boolean renameTo(File newName):重命名此File对象所对应的文件或目录,重命名成功返回true文件检测相关的

2020-06-05 11:48:31 223

原创 java泛型篇

什么是泛型泛型指的是java的参数化类型,是为了让集合可以记住元素的数据类型,不加泛型的集合里的元素类型都是Object类型,一旦里面有不同的对象进行强转时就会发生异常,如将Integer强转为String给集合添加类型就为泛型,如ArrayList < String> arrayList = new ArrayList < String>();java7简化了定义方式,菱形语法,后面尖括号不需在写类型ArrayList < String> arrayList

2020-06-03 15:06:08 161

原创 java集合

集合与数组的区别数组的长度是不可变化的,比如 声明长度是10的数组,不用的数组就浪费了超过10的个数,又放不下 ,为了解决数组的局限性,引入容器类的概念。 最常见的容器类就是ArrayList 只需要不断往容器里增加数据即可,不用担心会出现数组的边界问题。collection接口collection接口是LIst、Set、Queue接口的父接口,该接口的方法可以操作LIst、Set、Queue集合boolean add(Object o):用于向集合中添加一个元素boolean addAll

2020-06-02 21:46:57 122

空空如也

空空如也

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

TA关注的人

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