后端开发
分享后端开发文章
脉脉情缘
80后大叔
展开
-
MyBatis-Plus添加mapper层选装件,扩展BaseMapper实现批量插入等功能
1、在自定义注入器MySqlInjector上添加选装件方法public class MySqlInjector extends DefaultSqlInjector { @Override public List<AbstractMethod> getMethodList(Class<?> mapperClass) { List<AbstractMethod> methodList = super.getMethodList(mapperClass); m原创 2021-03-04 14:41:52 · 1907 阅读 · 6 评论 -
Mac中使用brew工具的常用命令
安装包brew install [包名]卸载包brew uninstall [包名]查询可更新的包brew outdated更新包brew upgrade(更新所有)brew upgrade [包名]清理所有包的旧版本brew cleanup清理指定包的旧版本brew cleanup [包名]查看可清理的旧版本包,不执行实际操作brew cleanup -n锁定某个包brew pin [包名]取消锁定brew unpin [包名]查看帮助brew h转载 2021-03-02 21:00:17 · 1032 阅读 · 0 评论 -
spring.rabbitmq.publisher-confirm属性配置过时处理
spring.rabbitmq.publisher-confirm在springboot2.2.0.RELEASE版本之前是amqp正式支持的属性,用来配置消息发送到交换器之后是否触发回调方法,在2.2.0及之后使用spring.rabbitmq.publisher-confirm-type属性配置代替,用来配置更多的确认类型原创 2021-02-21 12:35:54 · 2070 阅读 · 0 评论 -
CentOS部署Redis教程
本教程以CentOS6为例说明安装部署过程1.安装下载安装包官网下载建议上传到我们的home下解压 tar -xvf redis-4.0.9.tar.gz编译安装 mv redis-4.0.9 redis cd redis make && make install2.配置修改安装目录下的redis.conf文件vim redis.conf修改以下配置:#bind 127.0.0.1 # 将这行代码注释,监听所有的ip地址,外网可以访问pr转载 2021-02-21 12:33:35 · 232 阅读 · 0 评论 -
CentOS部署RabbitMQ教程
本教程以CentOS6为例说明:1、安装Erlang下载Zero-dependency Erlang from RabbitMQ 下载地址执行命令:rpm -ivh erlang-23.1.4-1.el6.x86_64.rpm2、安装RabbitMQ(1)安装socatyum -y install epel-releaseyum -y install socat(2)安装RabbitMQ下载RabbitMQ 下载地址rpm -ivh rabbitmq-server-3.8.9-1原创 2021-02-08 11:00:12 · 299 阅读 · 0 评论 -
通过Nginx实现HTTP强制重定向至HTTPS
通过Nginx实现HTTP强制重定向至HTTPS共有2种方式(推荐使用方法2):1、使用nginx的rewrite方法 server { listen 80; server_name www.***.com; rewrite ^(.*)$ https://$host$1 permanent; }2、使用nginx的301状态码 server { listen 80; server_name原创 2021-02-05 10:36:42 · 448 阅读 · 0 评论 -
MyBatis-Plus分页依赖冲突及弃用提示
1、采用pagehelper分页,会产生依赖冲突问题需在pom中排除mybatis<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.10</version> <exclusions> <exclusion>原创 2021-02-03 08:45:32 · 1548 阅读 · 0 评论 -
@RequestBody和@RequestParam区别
@RequestParam用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容。(Http协议中,如果不指定Content-Type,则默认传递的参数就是application/x-www-form-urlencoded类型)RequestParam可以接受简单类型的属性,也可以接受对象类型。实质是将Request.getParameter()中的Key-Value参数Map利用Spring的转化机制ConversionService配置原创 2021-02-03 08:42:25 · 97 阅读 · 0 评论 -
Mybatis-plus 映射字段时忽略字段的三种方式
1、声明该字段为 transientprivate transient List<SpecParam> params;2、声明该字段为 staticprivate static List<SpecParam> params;3、通过注解@TableField(exist = false)声明@TableField(exist = false)private List<SpecParam> params;以上三种方式可使对象中的属性不被序列化...原创 2021-02-03 08:41:17 · 3370 阅读 · 0 评论 -
Lombok中使用@EqualsAndHashCode注解
有的时候,我们需要重写一个类的@equals和@hashcode方法,就可以使用@EqualsAndHashCode注解。官网上大致是这样介绍@EqualsAndHashCode注解的:此注解会生成equals(Object other) 和 hashCode()方法。它默认使用非静态,非瞬态的属性可通过参数exclude排除一些属性可通过参数of指定仅使用哪些属性它默认仅使用该类中定义的属性且不调用父类的方法可通过callSuper=true解决上一点问题。让其生成的方法中调用父类的方法。转载 2021-02-03 08:40:08 · 344 阅读 · 0 评论 -
使用Mybatis-Plus条件构造器的“进化”过程
1、天真朴素的写法QueryWrapper<User> qw = new QueryWrapper<>();if (StringUtils.isNotBlank(nick)) { qw.like("nick", nick);}if (state != null) { qw.eq("state", state);}return userMapper.selectList(qw);2、分析API后AbstractWrapper的条件方法均重载有“是否拼接入SQL转载 2021-02-03 08:38:57 · 229 阅读 · 0 评论 -
JUnit单元测试详解
简介JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。好处可以书写一系列的测试方法,对项目所有的接口或者方法进行单元测试。启动后,自动化测试,并判断执行结果, 不需要人为的干预。只需要查看最后结果,就知道整个项目的方法接口是否通畅。每个单元测试用例相对独立,由Junit 启动,自动调用。不需要添加额外的调用语句。添加,删除,屏蔽测试方法,不影响其他的测试方法。 开源框架转载 2021-02-03 08:37:51 · 1015 阅读 · 0 评论 -
一方库、二方库、三方库说明
说明清单条目别称说明一方库一方包本工程中的各模块的相互依赖二方库二方包公司内部的依赖库,一般指公司内部的其他项目发布的jar包三方库三方包公司之外的开源库, 比如apache、google等发布的jar包,如logging、log4j等示例某公司拥有两个项目,分布为项目A和项目B,形成的jar包为:项目A.jar和项目B.jar项目A和项目B都使用了log4j的jar包:log4j.jar对于项目A来说,项目A.jar就是一方库,项目B.jar转载 2021-02-03 08:36:35 · 283 阅读 · 0 评论 -
Java枚举的使用
枚举类型可以取代以往常量的定义方式,即将常量封装在类或接口中。此外,枚举类型还提供了安全检查功能。枚举类型本质上还是以类的形式存在。1、使用枚举类型设置常量以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用了,并且该常量不能被修改,因为在接口中定义的常量时,该常量的修饰符为final与static。public interface Constants{ public static final int RED = 1; public static final int BLUE = 2转载 2021-02-01 09:25:28 · 126 阅读 · 0 评论 -
java8 lambda表达式详解
Lambda初体验首先我们看一下什么是lambda表达式。简单点说就是:一段带有输入参数的可执行语句块。//这里省略list的构造List<String> names = ...;Collections.sort(names, (o1, o2) -> o1.compareTo(o2));//这里省略list的构造List<String> names = ...;Collections.sort(names, new Comparator<String>原创 2021-02-01 09:23:50 · 277 阅读 · 0 评论 -
Mybatis-Plus传入实体类查询
@Overridepublic List<SpecParam> queryParamsByGid(Long gid, Long cid, Boolean generic, Boolean searching) { SpecParam specParam = new SpecParam(); specParam.setGroupId(gid); specParam.setCid(cid); specParam.setGeneric(generic); sp原创 2021-02-01 09:22:57 · 4147 阅读 · 1 评论 -
FastDFS上传文件时,出现500错误
项目背景:项目使用微服务的架构进行开发,前端进行文件上传时,首先经过nginx反向代理到对应的上传文件模块的服务器,再由该服务器将图片上传到FastDFS。点击上传文件后出现500首先就去检查了自己的程序,发现没有日志打出来,所以应该是在nginx进行反向代理的过程中出错。仔细观察发现Response Headers中的Server是nginx,此时第一反应是认为nginx对文件大小进行了限制。所以对nginx的http进行了如下配置:client_max_body_size 200m;重启ng.转载 2021-02-01 09:21:51 · 724 阅读 · 0 评论 -
帝国CMS XSS跨站脚本过滤
系统渗透测试发现,帝国CMS存在XSS跨站脚本攻击问题,具体表现为:后台用户提交的参数未做过滤或过滤不严就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫传播、篡改页面实施钓鱼攻击、诱导用户再次登录,然后获取其登录凭证等。代码处理如下:1、编辑/e/class/userfun.php文件,增加user_replaceXSS函数<?php//---------------------------用户自定义标签函数文件fu.原创 2021-02-01 09:19:41 · 483 阅读 · 0 评论 -
Elasticsearch常见的启动报错
报错一:unable to install syscall filter解决方法:编辑elasticsearch.yml在最下面添加如下配置bootstrap.system_call_filter: false报错二:[1]: max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]解决方法:首先用root用户登录修改配置文件vim /et原创 2021-02-01 09:17:59 · 380 阅读 · 0 评论 -
ElasticSearch 7.10.1报错Root mapping definition has unsupported parameters
新建索引时,报错Root mapping definition has unsupported parametersPUT /cars{ "settings": { "number_of_shards": 1, "number_of_replicas": 0 }, "mappings": { "transactions": { "properties": { "color": { "type": "keyword"原创 2021-02-01 09:17:15 · 1046 阅读 · 0 评论 -
使用ElasticSearch 报错 java.lang.IllegalStateException: Received message from unsupported version
使用ElasticSearch启动时报错:表示从不支持的版本接收到的消息:[5.2.2]最小兼容版本是:[5.6.0]java.lang.IllegalStateException: Received message from unsupported version: [5.2.2] minimal compatible version is: [5.6.0]解决方法:pom.xml中修改SpringBoot版本号<parent> <groupId>org.spr原创 2021-02-01 09:15:51 · 2436 阅读 · 0 评论 -
SpringBoot报错Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datas
SpringBoot启动报错:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.解决方法:方法1:如果项目不配置DataSource,可以在启动类声明排除@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})方法2:该项目pom.xml原创 2021-01-31 11:56:21 · 252 阅读 · 0 评论 -
FeignClient报错The bean ‘item-service.FeignClientSpecification‘ could not be registered. A bean with t
FeignClient启动报错The bean 'item-service.FeignClientSpecification' could not be registered. A bean with that name has already been defined and overriding is disabled.报错原因:在Spring Boot 2.0.x 中,spring.main.allow-bean-definition-overriding属性默认是 true,注解@Feig原创 2021-01-31 11:55:39 · 3702 阅读 · 0 评论 -
注解禁用ElasticSearch7.10.1自动创建索引
ElasticSearch7.10.1,SpringBoot启动时会自动初始化索引及字段,如果无需自动初始化索引,可在注解中声明createIndex = false@Document(indexName = "goods", replicas = 0, createIndex = false)原创 2021-01-31 11:54:27 · 1899 阅读 · 0 评论 -
Java分页时获取总页数的方法
方法1:Integer totalPage = (int) (total / pageSize + ((total % pageSize == 0) ? 0 : 1));方法2:Integer totalPage = (int) Math.ceil(total.doubleValue() / pageSize.doubleValue());原创 2021-01-31 11:52:58 · 2395 阅读 · 0 评论 -
通过nginx和cors解决跨域问题
一、跨域产生的原因跨域问题是浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能与当前页域名相同,这能有效阻止跨站攻击。但是这却给我们的开发带来了不便,而且在实际生产环境中,肯定会有很多台服务器之间交互,地址和端口都可能不同,怎么办?二、解决方案1、通过nginx反向代理方式:location / { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Method原创 2020-12-14 16:24:28 · 427 阅读 · 0 评论 -
帝国CMS通过API插件输出json数据
插件路径/e/extend/api/getInfos.php前端访问https://www.tskjxy.com.cn/e/extend/api/getInfos.php?classid=74&year=2019&month=01实现效果:输入栏目id、发布年月,最终输出所匹配的信息<?phprequire('../../class/connect.php'); //引入数据库配置文件和公共函数文件require('../../class/db_sql.php'); //引入原创 2021-01-31 11:38:46 · 652 阅读 · 0 评论 -
SpringBoot2.3.6整合Elasticsearch7.10.1教程
网上教程多是Elasticsearch旧版本,很多方法已废弃,本文以Elasticsearch 7.10.1,SpringBoot 2.3.6.RELEASE为例说明两者如何整合:一、添加pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins原创 2021-01-09 19:53:46 · 1634 阅读 · 6 评论