- 博客(45)
- 收藏
- 关注
转载 API带签名接口设计
说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自己的经验分享.本章目录:token简介timestamp 简介sign 简介防止重复提交使用流程代码分享一:token 简介Token:访问令牌access token, 用于接口中, 用于标识
2020-06-22 17:53:47
841
转载 SpringBoot使用Jwt来进行安全验证机制
一. HTTP Basic AuthHTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth二.OAuthOAuth(开放授权)是一个开放的授权标准,允许用户让第三方应用访问该用户在
2020-06-19 15:22:21
691
原创 logback-spring.xml中两种相对路径生成日志文件的配置
在jar启动的目录下生成 <property name="log.path" value="./logs/"/>我比较倾向于这一种,由于项目配置,可以将logs目录配置到jar启动的当前目录下。例如在/opt/project/background启动test.jar。则日志会产生在/opt/project/background目录。在jar启动的上层目录生成<property name="log.path" value="../logs" />在jar启动的上层目录.
2020-06-11 21:21:52
2561
原创 linux后台执行脚本产生日志和不产生日志
linux后台执行脚本产生指定文件名的日志nohup sh xxx.sh > xxx.log &linux后台执行不产生日志nohup sh xxx.sh > /dev/null 2>&1 &
2020-06-11 21:13:23
2802
原创 mysql 高版本 sql_mode=only_full_group_by 问题解决方法
场景介绍SpringBoot整合Mybatis项目,使用列表查询时,出现以下异常: SELECT list is not in GROUP BY clause........ which is not functionally dependent on columns in GROUP BY clause;this is incompatible with sql_mode=only_full_group_by错误原因原理方面这个错误一般发生在mysql 5.7以及 5.7以上的版本中,其原因
2020-06-11 21:10:30
638
原创 SpringBoot RestTemplate get请求带参数的坑
Spring中RestTemplate get带参数请求,接受不到请求参数处理。该方法可以自动组装参数public class UrlParametersUtils { /** * 拼接get参数 * * @param baseUrl baseUrl 例如 https://www.baidu.com/ * @param parameterMap parameter map **/ public static URI handleUrlParameters(String
2020-06-08 20:33:03
2857
原创 MybatisPlus整合SqlServer遇到的坑
mybatis使用union的坑 select * from ( select wod.Qty as qty,wod.Title as title,wod.Spec as spec,wod.TypeId as typeId,wod.PId as pid, wps.productName,wps.productNum,wod.OrderId,wod.OrderNum from order_detail wod left join ( select proid,c.
2020-06-08 20:32:12
2135
1
原创 SpringBoot请求日志超完整版
主要代码如下所示:import com.alibaba.fastjson.JSONObject;import lombok.AllArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import
2020-06-05 17:12:30
820
原创 SpringBoot整合Mybatis格式化运行SQL以及SQL运行时间
主要代码如下所示:package com.aoke.oa.search.plugins;import com.baomidou.mybatisplus.core.toolkit.PluginUtils;import com.baomidou.mybatisplus.core.toolkit.SystemClock;import com.baomidou.mybatisplus.core.toolkit.sql.SqlFormatter;import lombok.extern.slf4j.S.
2020-06-05 17:09:51
1029
原创 springboot整合logback记录日志保存到文件
SpringBoot版本号是2.1.7.RELEASE所有日志都按天保存到一个文件中<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <!-- 属性定义 --> <!--日志保存路径--> <property name="LOG_HOME" value="./l.
2020-06-04 14:34:03
1179
原创 linux安装软件总结(nginx,java,redis,minio,liberoffice,confluence)
centos7防火墙相关命令: https://blog.csdn.net/liuming690452074/article/details/92433729centos7安装nginx: https://www.cnblogs.com/mowen120/p/11937054.htmlcnetos7查看nginx安装参数: nginx -Vcentos7安装vim,gcc,g++。centos7安装netstat: https://blog.csdn.net/sky101010ws/article/
2020-05-28 16:31:58
271
翻译 Spring Type Conversion(Spring类型转换)
1:概述:Spring3引入了core.convert包,提供了通用类型转换系统,定义了实现类型转换和运行时执行类型的SPI。在Spring3.0之前,提供的PropertyEditor来将外部化bean属性值字符串转换成必需的实现类型。2:Converter SPI/** * A converter converts a source object of type {@code S} ...
2019-06-21 18:34:02
416
原创 Spring Boot配置篇(基于Spring Boot 2.0系列)
1:概述SpringBoot支持外部化配置,配置文件格式如下所示:properties filesyaml filesenvironment variablescommand-line arguments使用外部化配置方式:@Value注解Environment抽象(Spring环境接口抽象)@ConfigurationPropertiesPropertySource(文...
2019-06-17 15:32:37
195
原创 SpringBoot自定义注解@YmlPropertySource加载yml或者yaml文件
1:概述SpringBoot的@PropertySource注解只支持加载 properties结尾的文件。当使用@ConfigurationProperties注解配合@EnableConfigurationProperties注解将配置转换为JavaBean时,可能需要配合@PropertySource注解加载指定的配置文件。所以为了支持以yml或者yaml文件,我自定义了注解@YmlP...
2019-06-16 21:42:07
2800
原创 SpringCloud|SpringBoot中properties中文乱码解决
1:原因乱码的原因是:spring 默认使用org.springframework.boot.env.PropertiesPropertySourceLoader 来加载配置,底层是通过调用 Properties 的 load 方法,而load方法输入流的编码是 ISO 8859-1。2:解决解决方法:实现org.springframework.boot.env.PropertySour...
2018-12-13 15:45:47
2685
1
原创 Spring中RestTemplate的使用
Get请求1:带参数的Get请求请求URL示例:http://localhost:8080/test/sendSms?phone=手机号&msg=短信内容//错误使用:@Autowiredprivate RestOperations restOperations;public void test() throws Exception{ String url = ...
2018-11-21 16:42:17
695
2
原创 springboot整合shiro篇1--配置shiro
1:引入spring-shiro 依赖 <!--权限拦截--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> ...
2018-11-14 16:28:54
253
原创 springboot根据不同的日志级别显示不同的颜色
1:logback配置<!-- Logback configuration. See http://logback.qos.ch/manual/index.html --><configuration scan="true" scanPeriod="10 seconds"> <!--设置重要--> <property name="CONSOL...
2018-11-14 16:20:37
2946
原创 SpringMvc建立统一异常处理
1.异常处理作用统一的异常处理可以让前台隔离那些对他们无需的信息,但是又让后台可以很好的规避泛滥的异常.2.代码示例:建立业务异常/** * 服务(业务)异常如"账号或密码错误",该异常只做INFO级别的日志记录 * * @see com.ley.springboot.seed.config.WebConfig */public class ServiceExceptio...
2018-10-30 16:09:50
245
原创 Springboot整合mybatis实现多数据源
1:SpringBoot整合mybatis实现多数据源有两种方法1:静态方式将每个数据源都实现一个mybatis的sqlSessionFactory中,但是这种方法,缺点在于:你有几个数据源都会有几个mybatis的配置类;对于数据源的事务也不是很好控制,你的声明数据源的事务配置类2:动态方式使用SpringBoot提供的AbstractRoutingDataSource 类进行数据...
2018-10-17 17:36:44
676
原创 SpringBoot整合Redis实现自动缓存、更新、删除
1:引入springboot redis的maven依赖(建议使用spring-boot-dependencies或者使用spring-io-platform进行构建项目) <dependency> <groupId>org.springframework.data</groupId> <ar...
2018-10-16 11:06:14
6725
转载 Idea安装Mybatis Plugin
1:需要的文件:mybatis plugin2.9.1源安装包:https://pan.baidu.com/s/4i7oC5zn2:替换文件:链接:https://blog.myoss.app/2016/MyBatis-Plugin-学习使用/
2018-09-30 11:11:52
339
原创 Git常见问题解决
1:Git提交忽略自动忽略文件或者文件夹地址:https://www.cnblogs.com/youyoui/p/8337147.html2:如何解决failed to push some refs to git1-1:出错原因:出现错误的主要原因是github中的README.md文件不在本地代码目录中1-2:问题解决:第一步:进行代码合并git pull --rebase ...
2018-09-28 15:29:17
220
原创 SpringBoot之定时任务和多线程编程
定时任务1-1:使用@EnableScheduling注解默认配置的问题定时任务一般是项目中都需要用到的,可以用于定时处理一些特殊的任务。在spirngboot中使用定时任务变的特别简单,只需要在启动类上增加一个@EnableScheduling注解即可。默认情况下,如果什么都不进行配置,就会导致一个问题,系统中所有的定时任务都是使用的一个线程去执行的,也就是说,如果如果同一个时刻有2个定...
2018-09-28 14:51:42
529
原创 SpringBoot中RedisTemplate注意问题
1:ERR value is not an integer or out of range1-1:背景:使用redisTemplate.opsForValue().increment(key, delat)方法。1-2:分析:redis对任何不合法的值,都称为ERR。只有使用StringRedisSerializer序列化器才能使用incrment或者decrement方法。1-3:问题解决...
2018-09-28 11:23:58
2138
原创 文件操作工具类
/** * file utility * * @author ley * 需要引入commons-io jar包 **/@Slf4jpublic class FileUtils { /** * read file **/ public static byte[] readFile(File file) { byte[] byte...
2018-09-25 17:21:41
263
原创 SpringBoot文件上传与下载
/** * file upload and download * * @author ley **/@Slf4j@Componentpublic class FileUploadUtils { /** * innovation file path **/ @Value(&quot;${innovation.file.path}&quot;) private ...
2018-09-25 17:19:17
211
转载 Redis禁用危险命令
一: Redis线上不能使用危险的命令1:keys *虽然其模糊匹配功能使用非常方便也很强大,在小数据量情况下使用没什么问题,数据量大会导致 Redis 锁住及 CPU 飙升,在生产环境建议禁用或者重命名!2:flushdb删除 Redis 中当前所在数据库中的所有记录,并且此命令从不会执行失败3:flushall删除 Redis 中所有数据库中的所有记录,不只是当前所在数据...
2018-09-25 14:19:03
6244
1
原创 Java常见加密和解密算法
1:加密和解密辅助工具类:/** * byte hex utility class **/public class ByteHexUtils { private static final String HEX_STR = "0123456789ABCDEF"; /** * @param hex * @return */ publi...
2018-09-25 10:49:08
600
原创 Request header is too large 的问题解决
1:问题原因:后台接受前台传入的内容字符串,由于内容字符串太大,导致打印台报错.1-1:错误描述:java.lang.IllegalArgumentException: Request header is too large at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:701)...
2018-09-25 10:02:01
5050
原创 Spring IO Platform学习总结
1:Spring IO PlatformSpring IO Plat是一个附带包,不会编译到项目中,它只是将核心Spring API框架内聚集成到一个现代应用程序的平台中。它提供了已经测试完毕能很好协同工作的许多项目的Spring组合版本以及它们的依赖项。你在引入新的Spring IO Platform时不用带版本号的2:Maven使用Spring IO Platform使用pom的形...
2018-09-21 12:35:01
642
2
原创 json强大解析工具gson
1:GsonUtils工具类/** * google json utils * **/public class GsonUtils { public static final String DATE_FORMAT="yyyy-MM-dd HH:mm:ss"; /** * get google json * @see Gson * **...
2018-09-11 09:05:53
285
原创 Linux环境搭建maven私服Nexus
1:搭建环境安装1:Linux环境(centos7) Linux VM_0_10_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 环境—>腾讯云2:Java环境安装 1:下载jdk1.8:http://www....
2018-09-08 10:07:23
281
原创 kafka安装及其测试
1:测试环境:测试环境Centos7(阿里云),zookeeper版本zookeeper-3.4.10,kafka版本kafka_2.11-1.0.0。先到官网下载响应的文件.2:解压zookeeper和kafka安装包解压命令:tar -zxvf 文件安装包3:测试:引用别人链接:https://www.cnblogs.com/dragkiss/p/5668019.h...
2018-07-01 12:12:09
267
1
原创 redis安装及其远程访问
1:下载redis-3.2.8.tar.gz wget http://download.redis.io/releases/redis-3.2.8.tar.gz2:安装gcc yum install gcc—->解压redis 3:tar -zxvf redis-3.2.8.tar.gz4:进入解压后的目录,并执行编译操作 cd redis-3.2.85:执行安装: ...
2018-06-24 10:22:31
181
原创 Future取消任务
Future取消任务:**通过Future取消那些不再需要结果的任务: //示例:/** * TimedRun * <p/> * Cancelling a task using Future */public class TimedRun { private static final ExecutorService TASK_EXEC = Execut...
2018-06-22 21:42:30
1580
翻译 Callable异常封装
Callable异常封装Executor框架利用FutureTask来完成异步任务,并可以用来进行任何潜在的耗时计算,而且可以在真正需要计算结果之前就启动它们开始计算。不能在构造函数或者静态初始化方法中启动线程并不是明智的举措,所以可以提供一个start()方法来启动线程(???为什么这样做)。Callable记录这些异步任务,可以抛出受检异常或者未受检异常,并且任何代码都可能抛出Err...
2018-06-07 19:17:21
1999
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人