后端工作经验笔记
暮色恍然
这个作者很懒,什么都没留下…
展开
-
性能优化的关注点
性能优化的关注点1 写缓冲2 复用2.1 读缓存2.2 资源复用3 并发4 分片5 亲密度分享一下在性能方面经常考虑的一些关注点,可以分为以下方面1 写缓冲因为各级存储介质速度的不同,经常可以运用缓冲提高性能经典应用例如linux中的bufferCache或者mysql中的redolog2 复用复用可以分为两个方面,2.1 读缓存多次读取的数据可以在某一端缓存下来,避免每次都做完全部的操作经典应用例如页面缓存、redis。。。等等等等2.2 资源复用在某个资源创建、销毁、复制代价很高昂原创 2020-08-24 11:22:13 · 321 阅读 · 0 评论 -
使用GroboUtils进行多线程的单元测试
1.背景测试一个方法是否多线程并发安全,编写单元测试用例时发现Junit启动多线程会使用System.exit退出用例执行,无法进行多线程的测试,使用GroboUtils2.配置使用maven配置依赖<dependency> <groupId>net.sourceforge.groboutils</groupId> <artif...原创 2019-05-08 15:09:59 · 259 阅读 · 0 评论 -
java生成二维码合成背景图
一.背景接到个需求,要打印纸质红包,上面附二维码,然后每个红包的二维码不一样,扫描二维码去参加活动领真实的红包,需要给出对应的图片二.代码示例import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.awt.image.Writa...原创 2019-04-12 16:35:25 · 1156 阅读 · 0 评论 -
接口防止恶意调用的安全策略
1.背景需要做一个微信分享的后端支持接口,请求响应中包含appid,为了避免对外暴露配置相应的安全策略2.步骤限制请求域名在后端cors过滤器中添加指定的域名作为allowedOrigins的值,非此域名无法访问接口\@Configurationpublic class CorsConfig implements WebMvcConfigurer { @Override ...原创 2019-03-29 16:17:34 · 2413 阅读 · 2 评论 -
RocketMq搭建demo
1.在linux上安装RocketMq1.1安装gityum updateyum install gitgit --version1.2安装wget依赖包yum install wget1.3安装jdkyum install java-1.8.0-openjdk* -y1.4安装mavenyum install maven1.5安装RocketMQ#使用git拉取...原创 2019-03-12 17:20:30 · 1247 阅读 · 0 评论 -
springboot使用注解和aspectJ进行AOP编程
1.注解类先新建注解类package cn.seiya2.modules.admin.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annot...原创 2019-03-11 18:16:34 · 1213 阅读 · 0 评论 -
java通过sftp传输文件到指定服务器目录下
工具类如下package cn.sd2.common.utils;import java.util.Properties;import org.springframework.web.multipart.MultipartFile;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelSftp;import com...原创 2019-02-11 17:43:00 · 3950 阅读 · 0 评论 -
DFA算法实现的敏感词过滤器
遇到一个过滤敏感词的需求,根据网上查询的资料整理了一下,代码如下import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.HashMap;import java.util.HashSe...原创 2019-02-21 13:24:18 · 666 阅读 · 0 评论 -
通过Swagger快速生成接口文档
1.添加依赖:在pom中添加swagger的依赖,这里使用的swagger版本为2.7.0,springboot相应版本为2.0.3,jdk1.8示例如下:<swagger.version>2.7.0</swagger.version> <dependency> <groupId>io.springfox</groupId&g...原创 2018-12-20 18:49:52 · 2064 阅读 · 0 评论 -
java通过poi导出Excel表格
controller 层获取参数,调用service层方法获取文件,设置文件名,字符编码等信息,输出文件,输出后关闭流@ApiOperation(value = "导出模型信息记录Excel表", tags = "后台管理", httpMethod = "GET")@GetMapping("/export")void export(@ApiParam(hidden = true) @Req...原创 2018-12-05 00:29:44 · 111 阅读 · 0 评论 -
AES加密
AES加密是一种对称加密,即加密秘钥与解密秘钥相同示例如下:public class Aes { //算法 private static final String ALGORITHMSTR = "AES/ECB/PKCS5Padding"; /** * 将byte[]转为各种进制的字符串 * @param bytes byte...原创 2018-11-25 00:44:18 · 250 阅读 · 0 评论 -
java如何在调用方法时传递参数
1.如果为基本类型传参,那么就类似赋值的值传递,即复制一个值出来作为参数使用;2.重点在于对象类型传参,实际上是新建一个形参类型的引用,使该引用指向实参的地址....原创 2018-11-25 00:43:08 · 342 阅读 · 0 评论 -
mysql与redis快速插入数据
1.多线程的使用java最优性能线程数与cpu线程数有关,cpu每个线程同时只能做一件事,但java程序运行时间分为计算时间与非计算时间如IO读取等操作耗时,开启2-3倍的cpu线程数的线程一般情况下是追求性能优先的最优选择,因为过多的线程数会浪费一些资源在cpu线程的切换上2.mySql批量插入mySql快速批量插入比较合适的方法是通过jdbc的批处理插入数据,代码如下: public...原创 2018-11-25 00:42:12 · 579 阅读 · 0 评论 -
正则判断为空或为合法ip字段
^(\\s&&[^\\f\\n\\r\\t\\v])* 判断为空(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d{1,2})(\.(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d{1,2})){3} 判断为合法ipv4地址/^[\s\S]*.*[^\s][\s\S]*$/|(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d...原创 2018-11-25 00:40:24 · 793 阅读 · 0 评论 -
方法配置事务
data数据设置return值form设置具体字段名data() { return { page: { currPage: 1, list: [], pageSize: 100, ...原创 2018-11-25 00:38:40 · 143 阅读 · 0 评论 -
HttpClient实现签名并调用远程服务
使用treeMap传参,实现字典序排列计算签名并调用请求 // 转发获取角色等级请求 Map<String, String> params = new TreeMap<String, String>(); params.put("zoneId", zoneId); params.put("roleId", roleId); params.put("app...原创 2018-11-24 18:59:21 · 898 阅读 · 0 评论 -
工具类中如何注入Dao层Bean
@Componentpublic class UserRequest { @Autowired private SysUserDao sysUserDao; private static UserRequest UserRequest; @PostConstruct public void init() { UserRequest = this; UserRequest....原创 2018-11-24 18:57:38 · 3702 阅读 · 0 评论 -
springboot怎么获取token
[control层获取]@Autowiredprivate HttpServletRequest request;request.getHeader("token");[service层获取]封装工具类import javax.servlet.http.HttpServletRequest;import org.springframework.web.context.r...原创 2018-11-24 18:54:56 · 10559 阅读 · 0 评论