- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 JAVA 1.8 并发异步聚合结果:CompletableFuture
业务需求场景介绍 技术设计方案思考 Future 设计模式实战 CompletableFuture 模式实战 CompletableFuture 生产建议 CompletableFuture 性能测试 CompletableFuture 使用扩展 CompletableFuture 4种拒绝策略https://www.javazhiyin.com/43965.htmlhttps...
2020-07-01 14:58:44 706
原创 01 -- Netty概述
Netty是什么?异步事件驱动的网络应用框架,可以快速开发一个可维护的高性能的服务端和客户端。都是谁在用Netty?Dubbo、zk、RocketMQ、es、Spring5(对于Http协议的实现)、Spak等大型开源项目使用Netty作为底层通讯的实现。Netty中的核心概念是什么?1、Channel管道,是对Socket的封装。包含一组API,简化了直接与Socket进行操作复杂性。通道:Channel 【https://www.cnblogs.com/myitnews/..
2020-07-01 14:49:03 198
转载 Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模...
2018-12-10 15:32:47 155
原创 关于Java 占位符
import java.text.MessageFormat;import java.util.Date; public class test01 { public static void main(String[] args) { System.out.println("hello");// print hello // %s占位符,输出字符串 String us...
2018-12-07 19:02:18 1145
转载 详解tomcat的连接数与线程池
前言在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。在前面的文章 详解Tomcat配置文件server.xml 中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把...
2018-12-06 15:58:50 147
转载 Tomcat的性能与最大并发量
转载来自:http://blog.chinaunix.net/uid-7374279-id-4470247.html 当一个进程有 500 个线程在跑的话,那性能已经是很低很低了。Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。 当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。具体...
2018-12-06 14:44:09 12816 1
转载 详解Tomcat 配置文件server.xml
前言Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控制。因此,学习server.xml文件的配置,对于了解和使用Tomcat至关重要。本文将通过实例,介绍server.x...
2018-12-05 21:31:06 293
原创 Tomcat7配置远程调试DEBUG功能
前言 在实际开发中会用到这样的功能,我们公司将项目分三种环境(日常,预发,正式环境),已办需求写完部署到日常环境,有可能有bug,这个时候远程debug定位问题会很快,直接本地打断点即可.TomcatWindows下进入目录下的bin目录,编辑打开startup.bat在前面添加:SET CATALINA_OPTS=-server -Xdebug -Xnoagent -...
2018-12-05 21:23:56 1056
转载 同一个Tomcat部署多个项目
一.同一个Tomcat 同一个端口 部署多个项目第一步:把待发布的多个项目.war文件放入tomcat的webapps文件下下 第二步:修改 $TOMCAT_HOME\conf 下的server.xml文件 在server.xml文件中新增节点,一个节点代表一个web应用path属性:指定访问该Web应用的URL入口。 如“/HelloApp1/”docBase属性:指定Web应...
2018-12-05 20:16:10 341
转载 Maven常用命令大全与pom文件
一、Maven常用命令1.1、Maven 参数-D 传入属性参数 -P 使用pom中指定的配置 -e 显示maven运行出错的信息 -o 离线执行命令,即不去远程仓库更新包 -X 显示maven允许的debug信息 -U 强制去远程参考更新snapshot包 例如 mvn install -Dmaven.test.skip=true -Poracle 其他参数可以通过mvn he...
2018-11-20 20:01:37 553
原创 基于Tair 的分布式锁
@Service("tairLockService")@Slf4jpublic class TairLockServiceImpl implements TairLockService { @Resource private MosTairLock mosTairLock; @Override public Boolean tryLockWait(Stri...
2018-11-17 17:47:46 705
转载 Tair缓存系统学习 (数据结构存储系统)
1、Tair 简介 Tair 是一个类似于map的key/value结构存储系统(也就是缓存系统),具备标准的特性是:高性能、高扩展、高可靠,也就是传说中的三高产品,支持分布式集群部署。官网说目前支持java和c这两个版本。 适用场景是轻量级缓存应用,为小文件和零碎文件、固定数据文件存储的优化。 2、Tair 存储方式 2.1、非持久化 ...
2018-11-17 17:15:35 1586
原创 MySql 索引失效
索引并不是不会失效,有时就算是where查询字段中添加了索引,索引也会失效,失效场景如下:1.查询条件包含or当or左右查询字段只有一个是索引,该索引失效,explain执行计划key=null;只有当or左右查询字段均为索引时,才会生效;2.组合索引,不是使用第一列索引,索引失效如果select * from key1=1 and key2= 2;建立组合索引(key1,key2...
2018-11-16 18:14:54 259
转载 MySQL Merge存储引擎-实现分表
Merge存储引擎允许将一组使用MyISAM存储引擎的并且表结构相同(即每张表的字段顺序、字段名称、字段类型、索引定义的顺序及其定义的方式必须相同)的数据表合并为一个表,方便了数据的查询。 假设有log_2004、log_2005、log_2006、log_2007 这四张日志记录表,其数据分别是每一年的数据,表结构如下(YY代表年份):CREATE TABLE log_YY...
2018-11-16 17:45:30 210
转载 Log4j: 配置Log4j(详细配置)
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 , appen...
2018-11-14 20:21:33 420
转载 JAVA 8/9 -- 理解、学习与使用 Java 中的 Optional (主要解决空指针NPE问题)
从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但...
2018-11-14 18:21:38 365
原创 Spring 事务手动回滚: 用于事务管理的业务方法中使用了try...catch...的事务回滚
在使用Spring 事务(@Transactional())时,被事务管理的业务类方法中如果使用try...catch...来捕获异常的话,如果出现异常,事务不会回滚,这个时候我们可以手动回滚事务.如下: //假设这是被事务管理的service类中的一个方法片段 try { //业务逻辑 //出现异常 ...
2018-11-13 11:48:08 382
转载 java注解的自定义和使用
今天说说注解、标志@ 。针对java不同版本来说,注解的出现是在jdk1.5 但是在jdk1.5版本使用注解必须继续类的方法的重写,不能用于实现的接口中的方法实现,在jdk1.6环境下对于继续和实现都是用。jdk1.5版本内置了三种标准的注解:@Override,表示当前的方法定义将覆盖超类中的方法。@Deprecated,使用了注解为它的元素编译器将发出警告,因为注解@Depreca...
2018-11-08 16:06:41 138
原创 PL/SQL测试存在CLOB类型入参的存储过程时,入参为NULL
今天有一存储过程调用时报错, 想dubeg下查找问题 . 但是由于一入参为CLOB类型(如果为VARCHAR2,只支持2000长度),利用PL/SQL自身的测试功能测试时,v_doc 填入参数在运行方法是不会被传进去,所以这个参数会为null.所以这样无法直接测试此存储过程。测试方式:1、将CLOB 类型的入参存入一张测试表的CLOB类型的字段中。2、直接写脚本将此参数...
2018-11-05 17:50:09 5669 2
原创 PL/SQL调试存储过程卡死
有多次进行TEST调试存储过程,在某一个环境动不了,然后卡住,plsql界面进入假死状态了,而这个时候只有在windows里面的任务管理器里面强行关闭plsql的后台进程后,然后再次登录打开plsql,才能操作。但是这种强性杀死plsql进程后重新登录plsql的做法不能解决问题,因为你上次调试存储过程的被卡住的进程依然存在后台等待,并且会再次影响你第二次进行存储过程调试。PS:pls...
2018-11-05 11:26:59 4679
原创 IDEA - 开发工具插件
一、中英文翻译 - Translate 在代码中做翻译用: 中文 --> 英语 , 英语 --> 中文安装步骤:然后直接install ,OK后重启即可.二、.ignore 插件首先先讲下安装这个插件:跟着这张图操作大家就明白啦,老孙就不仔细讲解了。怎么使用这个插件呢 选择当前项目,new file然后选择要忽略的文件...
2018-10-31 14:08:27 569
原创 csrf-修复系统未授权获取信息
经集团安全部扫描系统存在未授权可以获取接口信息系统改造如下:总体方案: 添加拦截器,进行接口的请求状态的拦截判断(登录/注册等请求进行拦截排除)版本一系统pom文件spring-mvc版本不变的情况下,配置properties对请求拦截排除public class LoginStatusInterceptor implements HandlerInterceptor {...
2018-10-31 11:42:22 737
原创 CSRF安全漏洞
先看看跨站请求伪造(CSRF攻击)理解一 概念 你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。二 过程 1 受害者 Bob 在银行有一笔存款,通过对银行的网站发送请求 http://bank.example/wit...
2018-10-31 11:40:59 363
转载 SpringBoot之集成Spring AOP
转自: https://blog.csdn.net/zknxx/article/details/53240959在开始之前,我们先把需要的jar包添加到工程里。新增Maven依赖如下: <dependency> <groupId>org.springframework.boot</groupId>...
2018-10-26 14:51:33 97
转载 Gradle安装使用以及基本操作
阅读目录简单介绍 安装 使用idea创建一个web的Gradle项目 如何进行打包 解释build.gradle和settings.gradle 有关gradle的jar冲突 本地jar包位置和修改简单介绍Gradle是一个好用的构建工具使用它的原因是1、配置相关依赖代码量少,不会像maven一样xml过多2、打包编译测试发布都有,而且使用起来方便3、利用自定...
2018-10-17 11:38:18 238
转载 Redis应用场景
转自: https://blog.csdn.net/hguisu/article/details/88368191. MySql+Memcached架构的问题Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现。Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频...
2018-10-16 20:02:52 144
转载 Java高并发,如何解决,什么方式解决
转自: https://www.cnblogs.com/lr393993507/p/5909804.html对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。为了更好的理解并发和同步,我们需要先明白两个重要的概念:...
2018-10-16 17:12:18 88
转载 Java性能分析神器-JProfiler详解(一)(转)
前段时间在给公司项目做性能分析,从简单的分析Log(GC log, postgrep log, hibernate statitistic),到通过AOP搜集软件运行数据,再到PET测试,感觉时间花了不少,性能也有一定的提升,但总感觉像是工作在原始时代,无法简单顺畅,又无比清晰的获得想要的结果。遂花费了一定的时间,从新梳理学习了一下之前用过的关于jvm调优和内存分析的各种工具,包括JDK自带的jp...
2018-10-16 15:33:47 380
转载 数据库悲观锁和乐观锁使用Mybatis
以下是转载的oracle和Mysql两种数据库悲观锁和乐观锁机制及乐观锁实现方式:一、OracleOracle数据库悲观锁与乐观锁是本文我们主要要介绍的内容。有时候为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢,悲观锁顾名思义,...
2018-10-16 14:46:43 7846 2
原创 异常解决: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
MyBatis 抛出异常如下:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.threegrand.urdm.system.dao.UserDao.saveUser at org.apache.ibatis.binding.MapperMethod$SqlComma
2017-12-15 19:10:05 268
原创 Mysql数据库的安装与配置(Windows系统)
一、MYSQL的安装1、打开下载的mysql安装文件mysql-5.5.27-win32.zip,双击解压缩,运行“setup.exe”。 2、选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Custom”,按“next”键继续。3、点选“Browse”,手动指定安装目录。4
2017-12-15 10:14:50 744
转载 Git 详解
详情访问 廖雪峰的官方网站: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000详情访问 阮一峰的网络日志: http://www
2017-11-21 16:24:11 102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人