- 博客(24)
- 收藏
- 关注
原创 过滤器和拦截器实现Http请求日志记录
项目中记录请求日志是重要的非业务功能,记录请求出入参是常见的方式。一方面,项目本身提供的Http接口需要记录外部的访问记录。另一方面,项目调用第三方服务的Http接口也需要记录请求日志。方案一:请求日志可以使用AOP实现,给Controller层定义一个切面,统一记录出入参即可。这种方式在我的上一篇博文已经介绍。方案二:Http请求在项目中本身可以通过过滤器或拦截器处理,而AOP切面自定义成本较高。一个针对Controller层方法的切面并不能保障请求日志的完整性,还要有针对ControllerAdvic
2022-06-24 17:07:20 2383
原创 Spring AOP统一处理日志
AOP统一处理日志注:日志记录是系统非业务功能的重要一环,而日志中比较重要的是Controller层的请求日志,需要记录的信息包括登录用户、访问时间,访问接口,请求参数,响应结果等。本文基于Spring AOP、logback,在统一的切面对象中实现请求日志的统一处理。依赖<!-- Aspect AOP--><dependency> <groupId>org.springframework.boot</groupId> <arti
2022-05-26 18:56:52 722
原创 多模块依赖工程打包问题
多模块依赖工程打包问题注:本文使用的开发工具是IntellJ IDEA因为项目是多个模块工程开发,下一个模块依赖上一个模块,打包下一个模块时,出现了本地仓库找不到上一个模块依赖的问题。这个问题其实很简单,完全不需要修改pom.xml文件。只需要install上一个模块,再package下一个模块即可。install即是下载该模块工程的jar包到本地仓库中,这样打包下一个模块工程时就不会报错了。...
2022-03-29 11:33:23 8442
原创 拦截器解决跨域问题
拦截器解决跨域问题注:本文是用SpringBoot + Dubbo搭建的分布式工程,前后端分离,前端工程和后端工程的端口号不同,所以产生了前端请求跨域问题。拦截器定义注意,前端的请求域名如果是80端口,直接指定为"http://localhost",其他端口才具体指定。如果你的项目有多个客户端域名,那么可以指定一个数组,如下: // 设置允许多个域名请求 String[] allowDomains = {"http://localhost:8081","http://localhost:80
2022-03-03 16:58:06 7980
原创 SpringSecurity单体应用
SpringSecurity单体应用住:本文讲述的是Security在单体架构的应用,不支持集群跨域。另外,本文基于前后端不分离,使用的前端模板引擎是Thymeleaf。一、导入Security依赖第一个依赖是SpringBoot为Security提供的starter依赖,导入后,Security立即生效,会默认生成一个用户名和密码(项目重启后控制台可见),使项目中所有的请求都需要认证。第二个依赖是thymeleaf模板引擎未支持Security提供的依赖,这个依赖其实不是必须的,下文会简单提一下它
2021-11-19 18:42:01 2783
原创 枚举类在前后端以及数据库的应用
枚举类在前后端以及数据库的应用谈到枚举类,你一定知道一个优雅的设计,例如性别这一最常用的枚举类:public enum Sex implements BaseEnum<Sex, Integer> { MALE(1, "男"), FEMALE(2, "女"); private Integer code; private String name; Sex(Integer code, String name) { this.code =
2021-11-18 18:44:15 2615
原创 MongoDB通用持久类MongoBaseDao
MongoDB通用持久类MongoBaseDaoMongoTemplate已经给我们提供了丰富的api,为什么还需要通用持久层类?第一,比较复杂的持久化方法(如:批量更新、批量删除),MongoTemplate没有开箱即用的api,是需要我们自定义的。第二,定义通用持久层类支持泛型操作,可以简化整个持久层的代码量,对于简单的业务场景来说,下列持久类MongoBaseDao就可以满足要求。public class MongoBaseDao<T extends Serializable &
2021-10-29 16:47:57 441
原创 MongoTemplate批量更新(支持泛型)
MongoTemplate批量更新(支持泛型)MongoTemplate所有批量操作中,批量添加是最简单的,直接使用mongoTemplate.insert()即可。// MongoTemplate.class源码中insert方法有支持集合参数的重载函数,并且已经支持泛型public <T> Collection<T> insert(Collection<? extends T> batchToSave, Class<?> entityClass)
2021-10-28 15:41:11 9528 3
原创 MongoTemplate分组排序取第一条记录
MongoTemplate分组排序取第一条记录在开发过程中,竟然遇到这样一个需求,按照某一个字段或者某个查询条件进行分组。分组后取其最新的一条数据。例如:在查询文件版本时,要求根据文件路径filePath分组,表示每一组都是同一个文件,只是版本不同。分组后,每组取出版本号最高(即最新)的一个。目前在网上找到的可行的代码如下,Aggregates.match目前只支持对某个字段过滤,支持多条件查询暂时不知如何处理。public List<StreamFile> findRootChildr
2021-10-22 10:37:47 3398 1
转载 Collection sort()和stream().sorted()
Collection sort()和stream.sorted()Collection.sort()1、基本用法//方法内指定list对象Collections.sort(list, (o1, o2) -> o1.getName().compareTo(o2.getName()));//方法外指定list对象list.sort((o1, o2) -> o1.getName().compareTo(o2.getName()));//使用Comparator.comparing()C
2021-10-08 15:19:50 2111
原创 Docker-Compose安装MongoDB并设置密码
为什么安装MongoDB要设置密码?当然,如果你是在本机上安装MongoDB用于简单的测试学习,没有必要设置密码。但如果是在服务器上安装MongoDB,还是得做好安全保障。任何在公网上暴露的服务都会被恶意攻击者扫描到漏洞,如果没有密码屏障,那后果是很难预料的。本文介绍了一种可行的带有超级管理员账号与密码的MongoDB容器的安装方法,主要借助docker-compose实现。本文基于Docker环境和Docker-Compose环境,安装教程在我的博客里有。
2021-07-05 10:49:21 3881 3
原创 Hadoop简单集群搭建,三台虚拟机运行wordcount
Hadoop简单分布式集群搭建,利用三台虚拟机注:本文用到的hadoop版本是 hadoop-2.5.2,虚拟机是CentOS-6.10,虚拟机安装软件是VMware,java环境是 jdk1.8。三台虚拟机总共分配内存至少是4G,建议笔记本电脑达8G的网友参考。一、安装虚拟机并映射主机名与IP(1)VMware安装虚拟机,简单介绍一下1、点击创建新的虚拟机,默认典型即可,下一步。2、选择稍后安装操作系统,因为提前选择光盘映像文件会自动生成虚拟机的相关配置参数,专业安装强调自定义,所以先自己配置
2021-03-17 11:12:49 2462
原创 Linux单机配置Hadoop
Linux单机配置Hadoop注:本文的配置方案基于hadoop-2.7.2,安装目录是/opt/module,并且是单机配置。配置环境变量打开系统配置文件:vim /etc/profile文件末尾追加如下配置:#HADOOP_HOMEexport HADOOP_HOME=/opt/module/hadoop-2.7.2export PATH=$PATH:$HADOOP_HOME/binexport PATH=$PATH:$HADOOP_HOME/sbin重载系统配置文件:source
2021-03-03 16:54:36 252 1
原创 Docker-compose快速搭建mysql与tomcat服务
什么是Docker-composeDocker-compose是快速构造Docker容器的一个工具,使用这个工具可以更快地利用Docker搭建服务器环境。前提:你的服务器已经安装了Docker,若没有安装,参考上一篇博客的第一部分“Linux系统下Docker的安装”即可:https://blog.csdn.net/weixin_45155235/article/details/112846113部署Docker-compose下载开源Docker-compose包浏览器打开GitHub官网,搜索
2021-01-20 14:22:02 625
原创 Docker创建MySql服务,Navicat能连,项目代码却保错
Docker创建MySql服务,Navicat能连上,项目代码却保错,一样的IP、端口、密码,给我整懵了!如图,Navicat和IDEA自带的Database插件都能连接成功。项目datasource的配置完全一致。然而,项目运行后总是说连接数据库失败。经反复尝试,排除了代码写错的原因,也排除了jdbc.url中设定serverTimezone、characterEncoding等参数的影响。最后,发现是当前mysql驱动版本不支持当前Docker的MySql服务所导致的。我之前的mysql
2021-01-19 19:28:34 573
原创 Docker安装Tomcat和MySql
Docker的用途首先声明Docker是用于解决Linux服务器集群安装环境同步的问题,用于解放运维工作者花费大量时间在安装服务器环境上。本文仅仅介绍Docker非常基础的运用,运用Docker重新在Linux系统安装Tomcat和MySql。提示:1、Docker安装软件或环境不会与之前的软件或环境冲突,也不基于之前的软件或环境。也就是说,如果你已经安装了Tomcat和MySql,用Docker再安装一次,不用卸载之前的Tomcat和MySql;如果你之前没有安装Tomcat和MySql,用Doc
2021-01-19 18:12:39 905
原创 服务器上的Redis千万记住设密码
Redis部署踩过的坑redis配置文件的问题1、bind 默认是127.0.0.1。如果要改成真实IP,对于服务器来说要用内网地址,而不是公网地址。2、为什么要改bind ,因为搭建redis集群时,如果按照默认配置文件。主从复制的状态不能激活,即master_link_status:down的状态。在网上找到一种解决方案:是把bind 127.0.0.1的配置注释掉,然后把protected-mode yes的配置改为protected-mode no。显然这是歪门邪道。只要吧bind改为服务器的
2021-01-17 12:22:14 625 3
原创 String转java.sql.date转json以及java.sql.date传入mysql数据库少一天的问题
String转java.sql.date转json以及java.sql.date传入mysql数据库莫名少一天的问题问题的产生:数据库存入"yy-MM-dd"格式的date数据,要通过java.sql.date获取并转换成json返回到前端页面。而前端交互时传回的date是String格式,需要转换为java.sql.date并传入数据库。就这样,产生了三大问题。一是"yy-MM-dd"格式的java.sql.date转为json默认变为了一个大整数。二是String不能直接转换为java.sql.d
2021-01-07 10:52:53 640 1
原创 Centos安装JDK1.8、Tomcat7、Mysql5.7
Centos安装JDK1.8、Tomcat7、Mysql5.7安装jdk1、服务器外下载jdk安装包jdk官网下载地址https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html由于现在下载需要注册账号,所以可在这里寻找临时账号密码登录下载http://bugmenot.com/view/oracle.com2、 进入到目录 /usr/local/ 中:shell> cd/usr/local/3
2021-01-05 00:15:49 548
原创 Vue是什么,怎么学
Vue生态vue生态圈 简书https://www.jianshu.com/p/43938ff38808我们为什么要用vue,他解决了什么问题,如何使用它? CSDNhttps://blog.csdn.net/wxl1555/article/details/79964818什么是vue全家桶? bilibili专栏https://www.bilibili.com/read/cv4267414/智能社】公开课——理解Vue.js生态圈(全家桶),Blue(石川)主讲 bilibili视频
2021-01-01 22:13:33 263
原创 SpringMVC配置正确,依然无法访问静态资源的问题(编译器IDEA)
SpringMVC配置正确,依然无法访问静态资源的问题(编译器IDEA)IDEA项目结构静态资源css、fonts、js、images、html文件夹等放在webapp目录下,没毛病。项目web配置文件<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSche
2020-08-31 21:18:34 1882 7
原创 tomcat出错org.springframework.beans.factory.BeanCreationException
@springMVCspringMVC项目出错启动tomcat,出现如下错误:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myController': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Clas
2020-08-20 13:48:11 1547
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人