自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Druid数据源加密

由于明文密码不能出现在项目配置文件中,因此需要对数据库的密码进行加密。 项目采用的druid数据源,加密方式如下:(1)首先复写DruidDataSource中的setUserbane和setPassword方法import com.alibaba.druid.filter.config.ConfigTools;import com.alibaba.druid.pool.DruidDataS...

2019-05-24 21:56:52 834

原创 AES 128位CBC加密解密(不使用固定IV)

安全检查时要求账号和密码加密后才能存到数据库中,要求加密算法如下:1)分组密码算法:AES(密钥长度在128位及以上)(GCM或CBC模式)2)流密码算法:AES(密钥长度在128位及以上)(OFB或CTR模式)、chacha203)非对称加密算法:RSA(2048位及以上)、ECC(256位以上)4)哈希算法:SHA2、SHA35)密钥交换算法:DSA/DH(密钥长度2048位及以上)...

2019-05-24 21:29:36 19126 1

原创 web项目配置listener来切换环境参数

项目部署到不同的环境上时,需要对数据库连接等参数进行切换。每次部署完成后,再逐一更改这些参数麻烦且易出错,因此想通过自动化的方式修改。查知WEB项目启动时,首先会读取web.xml配置文件,获取到和中配置,然后将中的配置转化为键值对,作为项目的公共变量,对中的类创建监听实例。因此可以通过监听实例的方法来使项目在尝试连接数据库之前,对数据库参数进行初始化。代码及配置如下:(1) 在web.xm...

2019-05-15 21:59:44 778

原创 Log4j日志分类和过滤敏感字段

项目上线时,需要对项目做安全检查,其中有两项是对输出日志进行分类和过滤掉日志中敏感字段。项目使用Log4j日志系统,下面简单介绍下这两项要求的实现方式。对日志进行分类,要求调用其他服务的API日志按照格式单独输出到一个文件。方式: 除根Logger外,再额外增加一个apiLogger,如下, <!-- api logger的设置--> <logger name="l...

2019-05-08 21:27:52 9328 1

原创 两种线程安全的单例模式(笔记)

双重校验锁//双重校验锁public class SingletonDemo{ private static volatile SingletonDemo singleton; private SingletonDemo(){} public static SingletonDemo getInstance(){ if(singleton ==...

2019-03-16 11:26:48 151

原创 JAVA多线程之CountDownLatch和CyclicBarrier

1 CountDownLatch(1)countDownLatch等待指定数量线程结束后,进行下一步;(2)countDownLatch构造函数初始化一个volatile变量,countDown()方法,使用了CAS,和AutomicInteger的增减方法相同;(3)await方法阻塞当前线程,直到getCount值为0,如果不调用countDown方法,getCount的值部位0,那...

2019-03-08 11:29:25 123

原创 Servlet.init() for servlet springDispatcherServlet threw exception 问题

在搭建SSM框架时,整合业务逻辑层和表现层后一直报错, Servlet.init() for servlet springDispatcherServlet threw exception。Error creating bean with name ‘userController’: Injection of autowired dependencies failed; nested except...

2019-03-05 17:24:10 12543 2

原创 JAVA多线程之Lock

synchronized关键字实现的锁不容易控制,java提供了Lock接口来实现锁机制。两者的主要区别在于:1)synchronized是java内置关键字,而Lock是接口;2)synchronized可以自动的释放锁,比如代码执行完成,出现异常等,也可以通过wait()方法手动释放锁;但是Lock需要用unlock方法手动释放锁。3)synchronized锁可重入,不可判断,非公...

2019-03-04 09:56:38 132

原创 java多线程之ThreadLocal

ThreadLocal是每个线程的“独有”空间,可以存放线程的独有变量。如下例,分别使用ThreadLocal和ArrayList存储两个线程的变量:import java.util.ArrayList;import java.util.List;public class ThreadLocalDemo{static ThreadLocal&amp;amp;lt;List&amp;amp;gt; threadLoca...

2019-03-03 18:40:57 204

空空如也

空空如也

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

TA关注的人

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