- 博客(82)
- 收藏
- 关注
原创 责任链模式详解
责任链模式定义 责任链模式(Chain of Respinsibility Pattern) 是将链中的每一个节点看做一个对象,每个节点处理的请求均不同,且内部自动维护下一个节点 对象。 当一个请求从链式的首端发出时,会沿着链的路径传递给每个节点对象,只至有对象处理这个请求为止。 属于行为模式。 责任链使用场景 1. 多个对象处理 同一请求,但具体由哪个对象处理则在运动时动态决定 2.在不明确指定接受者的情况下...
2021-01-30 12:39:56 327
原创 AOP 拦截 sql语句
1 .定义注解类@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD})public @interface PrintSql {}2.设置切面@Aspect@Componentpublic class MybatisSqlAop { @Value("${printSql.active}") private Boolean PRINT_SQL_ACTIVE; @Autowir...
2020-07-30 18:05:44 1998 1
原创 处理文件名称乱码
public static String getDownloadFileName(HttpServletRequest request, String fileName) { // 防止文件名中文乱码 String userAgent = request.getHeader("User-Agent"); try { if (userAgent.contains("MSIE") || userAgent.contains("Trid..
2020-06-16 10:10:02 369
原创 AES加密工具
public class AesUtil { public static final String KEY_ALGORITHM = "AES"; public static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";//默认的加密算法 //自定义密码 public static final String ASSETS_DEV_PWD_FIELD = "goujiaProblemConfir.
2020-06-14 16:52:57 508
原创 读取远程服务器文件并输出文件
public static void main(String[] args) throws Exception { String path="https://htmlstoretest.oss-cn- hangzhou.aliyuncs.com/acf/test100110010107011301781a9b73-ac34-479b-b793- 2093bc1b94eb.pdf"; URL url = new URL(path); ...
2020-06-14 16:49:59 656
原创 RockeMQ笔记
MQ的技术选型 1.业内常用的MQ有哪些,哪些活跃的比较高 2.每一种MQ各自的表现如何 3.这个些MQ在同等机器条件下,能抗多少QPS(每秒能抗几千QPS,还是几万QPS,QPS:每秒查询率) 4.性能如何(发 一条消息要2ms还是20ms) 5.可靠性能不能得到保障(MQ部署的服务器挂掉怎么办)RocketMQ: 1.开发语言:java开发 2.性能:吞吐量高...
2020-06-14 16:39:30 204
转载 JAVA注解-ElementType详解
java中元注解(用来标识注解的注解)有四个:@Retention @Target @Document @Inherited; @Retention:注解的保留位置 @Retention(RetentionPolicy.SOURCE)//注解仅存在于源码中,在class字节码文件中不包含 @Retention(RetentionPolicy.CLASS)// 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得, @R...
2020-05-26 17:27:15 676
转载 Java8 List集合过滤出符合条件的List元素集合
新增实体类 public class Student { private Integer stuNum; // 学号 private String name; // 姓名 private Integer age; // 年龄 省略set get 或加 @Data }使用Java8中的lambda表达式过滤public class FilterListTest { /** * @Description 创建四个学生对象并设值,保存在list集
2020-05-25 15:28:28 7402
原创 sql 统计记录
SELECT COALESCE(count(*),0) as total , COALESCE(SUM(CASE status WHEN 1 THEN 1 ELSE 0 END),0) one, COALESCE(SUM(CASE status WHEN 2 THEN 1 ELSE 0 END),0) two, COALESCE(SUM(CA...
2020-05-06 11:53:31 252
转载 成年人的21个潜规则
作者:英雄链接:https://zhuanlan.zhihu.com/p/106181239来源:知乎成年人的21个潜规则,必须知道:1、偶尔联系你的人,不是有事就是借钱。2、别人给你看手机照片的时候,管住手、别乱翻。3、有重要和正式的事情一定要打电话通知对方,微信语音和电话不一样。4、30岁以后朋友的婚礼可以选择性参加,邀请别人时心里应该有数,不会来的就别请,都尴...
2020-04-28 11:15:33 20891
原创 jdk1.8 笔记
// 流Map映射 将元素R映射为T,或者将对象Do转为DTOList<String> list = Arrays.asList("马某人", "测试组", "你猜啊");List<String> newList = list.stream().map(obj -> obj + "我家的").collect(Collectors.toList());Syst...
2020-04-01 16:57:15 184 1
原创 事务不回滚总结
事务失效的主要情况有如下: 1.没有添加事务或者事务@Transactional的拓展配置propagation不正确 2.事务注解所在的类没有被加载成Bean,被Spring进行管理 3.注解方法不为public修饰 4.发生了自调用,一个类中,自己调用自己的方法,没有经过Spring的代理类,默认只有在外部调用事务才会生效解决方法之一是在类中注入自己,用注...
2020-01-09 18:46:45 181
原创 BIO、NIO、AIO之间的区别以及应用场景
BIO(IO): 同步阻塞IONIO : 同步非阻塞IOAIO : 异步非阻塞IO(事件驱动机制,回调)
2019-10-17 23:01:13 246
原创 Linux下Mycat安装
一、下载Mycat官网下载自己需要的Mycat版本二、解压我这里下载的是Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz 版本解压文件:Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz三、启动Mycat,进入bin目录执行命令: ./mycat...
2019-10-08 22:45:40 229
原创 keepalived邮件报警配置
一、配置keepalived自带的邮件配置,实际生产中不适用keepalived自带的邮件功能二、keepalived通过调用shell脚本(1)安装邮件服务器 yum install postfix* (2)修改配置cd /etc/postfix/ 编辑main.cf文件 修改主机名称打开取域名的注释配置网络监听,监听所有邮件目...
2019-10-04 17:11:01 922
原创 keepalived 配置简单详解
global_defs { router_id LVS_MASETR}router_id 只要保证不同就可以vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication {...
2019-10-04 16:18:48 1022
原创 keepAlive搭建高可用master
一、下载Keepalive官网下载keepalive,https://www.keepalived.org/download.html,我这里下载的是1.3.5版本二、将master包上传到 各个master服务器上解压文件:tar -zxvf keepalived-1.3.5.tar.gz进入文件夹 keepalived-1.3.5 , 执行./configure出现如...
2019-10-04 16:01:37 791
原创 主主复制配置
一、复制之前搭好的master,准备两个或两个以上的master二、配置主主复制(1)查看mysql的binlog日志启动状态并启动所有master的binlog日志 登录mysql,执行show variables like '%log_bin';(2)因为是复制的master,需要修改auto.cnf的uuid,确保唯一 cd /var/lib/mysql...
2019-10-03 10:06:27 154
原创 Haproxy简单配置
修改haproxy配置文件,添加balance source配置轮询算法监控页面 listent admin_stats检测数据库是否挂掉:添加Check port 3306绑定ip和端口: 0.0.0.0:8888指定协议: mode http指定路径 stats uri /test_haproxy指定用户名称和密码 stats auth ad...
2019-10-02 23:00:17 88
原创 Haproxy下载与安装 Linux版本
搭建Haproxy步骤一、 创建数据库用户,并赋予权限登录master数据库, 创建用户create user 'test'@'192.168.40.%' identified by 'test'; 从数据也会创建该用户test, 赋予该用户所有的权限:grant all on *.* to 'test'@'192.168.40.%';二、下载安装Haproxy下载...
2019-10-02 21:59:36 3240
原创 配置Mysql主从复制节点
一、环境配置前面博客已经配置好了我们的多个服务器,并且已经安装好了数据库二、创建用户,赋予权限我的master地址是192.168.40.200, slave:192.168.40.201在master中创建用户,并赋予权限create user 'repl'@'192.168.40.%' identified by 'repl';备注:修改设置密码条件set gl...
2019-09-29 18:01:49 612
原创 克隆Linux后修改网络配置
一、记录克隆后,被克隆Linux的MAC 地址 右键虚拟机,选择设置后,选择硬件选项中的网络配置,点击高级选项,弹出框 中,有MAC地址,记录下来。二、 修改网络配置 文件 进入文件vim /ect/sysconfig/network-scripts/ifcfg-eth0 修改HWADDR= 属性,将熟悉值改为我们刚才记录的值三、删除多余配置 文件进入 cd ...
2019-09-29 16:23:30 274
原创 线程按顺序执行
一、使用线程池实现 使用线程池工具Executors.newSingleThreadExecutor(); 获得的是核心线程数量是1,最大线程数也是1,无界阻塞队列,实际不建议使用Executors提供的工具,自己根据实际情况自定义线程池比较好。 实现线程顺序执行,我将线程放到我们定义好的线程池就好,线程池会按照我们提交的顺序执行我们递交的任务。实例代码如下: pub...
2019-09-28 11:57:52 167
原创 java8 Lambda Stream collect Collectors 常用详细实例
public static void main(String[] args) { Activity activityOne = new Activity(1L, "12幢"); Activity activityTwo = new Activity(6L, "13幢"); Activity activityThree = new Acti...
2019-09-23 14:00:11 1274
原创 通过binlog日志恢复数据
1.登录数据库执行一下命令 show master logs; 可以查看二进制日志列表 show master status:查看当前使用的日志文件 2.退出mysql,选择要使用的日志文件进行数据恢复 执行命令: mysqlbinlog mysql-bin.000002 | mysql -uroot -p...
2019-09-18 23:57:12 213
原创 开启MySQL的binlog日志
1.开启binlog日志 进入mysql配置文件,vim /etc/my.cnf添加如下配置 server-id=1 log-bin=/var/lib/mysqld-bin添加完以后重启,mysql,使用命令 show variables like '%log_bin%';可以 查看多出的两个文件Mysql-bin.000001 : 日志文件的数据文件...
2019-09-17 00:07:38 135
原创 Linux 的Mysql中创建用户
1.登录mysql后,创建用户,命令如下:create user 'repl1'@'192.168.40.%' identified by '123456'; repl1:用户名 IP:为网段为40的所有ip 123456:密码 2.给用户分配权限grant replication slave on *.* to 'repl1'@'192.1...
2019-09-15 23:17:33 192
原创 Linux中安装 MySQL Yum Repository
1.官网下载符合自己要求的mysql yum源 地址:https://dev.mysql.com/downloads/repo/yum/ 2.使用工具上传到linux中 3.到文件夹中执行命令,解压文件 命令如下:yum localinstall mysql57-community-release-el6-11.noarch.rpm ...
2019-09-13 14:52:18 387
原创 Linux网络配置
1、先进入 etc/sysconfig/network-scripts 目录 cd /etc/sysconfig/network-scripts 2、编辑网卡文件ifcfg-eth0 vi ifcfg-eth0编辑页面如下; 修改ONBOOT=yes BOOTTRPOTO=static 指定...
2019-09-13 01:12:52 55
原创 并发工具之CycliBarrier
CycliBarrier :栅栏作用: 可以使一组线程在达到同一个屏障之前阻塞,当最后一个线程到达屏障时,屏障打开,这一组线程继续往下执行 构造方法:new CyclicBarries(int parties)parties 线程组的数量,当只有部分线程到达屏障时,该部分线程阻塞,当所有线程都到达屏障时,屏障放行 主要方法: a...
2019-09-12 19:17:41 295
原创 保留两位小数
int diliverNum=3;//举例子的变量 int queryMailNum=9;//举例子的变量// 创建一个数值格式化对象 NumberFormat numberFormat = NumberFormat.getInstance();// 设置精确到小数点后2位 numberFormat.setMaximumFractionD...
2019-09-02 16:42:48 91
原创 并发工具之Semaphore
semaphore:信号量,又可称为限流器,可以控制线程的并发量,初始化的之后指定令牌数。 Semaphore 管理了一系列的许可证,也就是令牌机制。每个线程进来,调用acquire()获得令牌,若无法获得令牌,放到同步队列AQS中并阻塞。如果获得令牌,执行方法后,调用release()释放令牌,其他线程才再次争抢令牌。 拥有的方法如下:acquire() :获...
2019-09-01 22:01:46 118
原创 并发工具之计数器CountDownLoach
CountDownLatch是一个同步计数器 作用:用于协调多个线程之间的同步,让一个线程线程等待其他线程执行完以后再执行。 初始化时,传入一个需要计数的线程等待数。 CountDownLatch总共有两个方法: await(): 阻塞当前线程,当其他线程将计数countDown()为0时,线程开始执行 countDown() : 负责计数器减1例如:...
2019-09-01 16:33:57 732
原创 java-合并单元格导出excel表格
导出具体代码如下: @RequestMapping("/") public String home(HttpServletResponse response) throws IOException { String fileName="hjx08.xls"; HSSFWorkbook workbook = new HSSFWorkbook();...
2019-07-05 16:12:44 201
原创 设计模式之委派模式
委派模式:负任务的调用和分配任务。 和代理模式很像,可以看做是一种特殊静态的代理的全权 代理。代理模式注重过程,委派模式注重结果。 委派模式在spring中应用非常多,dispatherServlet就用到了委派模式,在spring源码中,以delegate结尾,都是使用了委派模式的。BeanDefinitonParseDelegate根据 不同的委派类型,委派不同滴解析逻...
2019-06-23 22:54:18 69
原创 exist和in的区别
这里简单的给自己做个记录: exist和in的区别: select * from a where id in (select id from b) ; select * from a where id exists (select id from b) ; ...
2019-06-17 22:47:00 23562
原创 统计某个进程中各线程的状态数量
top查看linux中所有的进程jstack:查看进程中的线程状态jstack 2702 | grep java.lang.Thread.State | awk '{print $2}' | sort | uniq -c:查看进程2702中线程状态统计如图:...
2019-06-14 12:00:41 1020
原创 Connection is read-only. Queries leading to data modification are not allowed
对数据库操作时,出现: Connectionisread-only.Queriesleadingtodatamodificationarenotallowed 报错, 是因为把事务设置为了只读,改下事务为可写就行了...
2019-05-24 14:26:10 184
原创 JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
Debug启动,项目起不来,出现这种JSR-330 :'javax.inject.Inject' annotation found and supported for autowiring日志,卡主了,最后发现是把断点打在了方法名上了,去掉就好了...
2019-05-24 14:24:18 3485
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人