代码改变世界

随笔分类 -  java

mvel语法指南[翻译]

2017-12-05 00:46 by Loull, 9403 阅读, 收藏, 编辑
摘要: mvel受到了java语法的启发,但是存在一些根本性的差异,mvel旨在使其成为更有效的表达式语言.比如直接支持集合、数组和字符串匹配,正则表达式的运算操作等. mvel2.x有以下几个部分组成: Property expressions Boolean expressions Method inv 阅读全文

反射调用异常InvocationTargetException和代理类抛出异常

2017-11-15 01:29 by Loull, 1679 阅读, 收藏, 编辑
摘要: 反射调用方法,如果方法抛出异常,会被包装成InvocationTargetException。 如果反射对象被代理了,在代理类中抛出异常,不会被包装成InvocationTargetException。 package com.loull.test.aop; public interface Per 阅读全文

quartz 1.6.2之前的版本,定时任务自动停掉问题

2017-11-10 00:25 by Loull, 1149 阅读, 收藏, 编辑
摘要: https://searchcode.com/codesearch/view/28831622/ Quartz 1.6.2 Release Notes This release contains a small but important bug fix and one small new feat 阅读全文

时区切换导致quartz定时任务没有触发问题

2017-11-07 20:33 by Loull, 4483 阅读, 收藏, 编辑
摘要: 时区切换对Quartz的cron表达式有影响,切换的1小时内停止触发定时任务,导致sla没有定时清空内存计数,误发限流。 美国夏令时PST切换到冬令时PDT,会有时间跳变。不带时区跳变的,会出现时间重叠或不连续 问题复现 mac本机模拟,把时区换成美国的,然后把时间调到11月5号01:59 1、把本 阅读全文

误用WeakHashMap引起的死循环cpu跑满问题

2017-11-04 19:49 by Loull, 2199 阅读, 收藏, 编辑
摘要: 最近使用mvel 2.2.0.Final,出现一次cpu跑满,经过线程栈分析,发现是误用WeakHashMap引起的。 故障现场: 看WeakHashMap源码: 线程在WeakHashMap的get方法里面出不来了,一直在while循环里面。 多线程并发get和put,fullgc或gc的时候可能 阅读全文

常用限流方案的设计和实现

2017-10-24 21:44 by Loull, 2197 阅读, 收藏, 编辑
摘要: 为了保证在业务高峰期,线上系统也能保证一定的弹性和稳定性,最有效的方案就是进行服务降级了,而限流就是降级系统最常采用的方案之一。 限流即流量限制,或者高大上一点,叫做流量整形,限流的目的是在遇到流量高峰期或者流量突增(流量尖刺)时,把流量速率限制在系统所能接受的合理范围之内,不至于让系统被高流量击垮 阅读全文

RateLimiter

2017-09-09 20:38 by Loull, 346 阅读, 收藏, 编辑
摘要: 昨天CodeReview的时候看到同时使用RateLimiter这个类用作QPS访问限制.学习一下这个类. RateLimiter是Guava的concurrent包下的一个用于限制访问频率的类. 1.限流 每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来 阅读全文

Spring AOP 代理类,BeanNameAutoProxyCreator cglib

2017-07-28 16:15 by Loull, 1917 阅读, 收藏, 编辑
摘要: BeanNameAutoProxyCreator支持拦截接口和类,但不支持已经被jdk代理过的类$Proxy8。使用cglib才能代理,如下 optimize是ProxyConfig的属性。意思为 是否对生产代理策略使用优化。 一个例子 Spring AOP 提供一个可根据Bean名称来自动生产代理 阅读全文

Log4J

2017-07-24 14:47 by Loull, 167 阅读, 收藏, 编辑
摘要: Logger:日志记录器,负责收集处理日志记录 (如何处理日志) Appender:日志输出目的地,负责日志的输出 (输出到什么 地方) Layout:日志格式化,负责对输出的日志格式化(以什么形式展现) 1、Logger: logger可以有选择的启动和禁用日志的输出,我们经常会在各种框架中看到如 阅读全文

OGNL

2017-07-13 17:49 by Loull, 306 阅读, 收藏, 编辑
摘要: 在mvc中,数据是在各个层次之间进行流转是一个不争的事实。而这种流转,也就会面临一些困境,这些困境,是由于数据在不同世界中的表现形式不同而造成的: 1. 数据在页面上是一个扁平的,不带数据类型的字符串,无论数据结构有多复杂,数据类型有多丰富,到了展示的时候,全都一视同仁的成为字符串在页面上展现出来。 阅读全文

spring import jar中的bean配置文件

2017-06-12 02:02 by Loull, 1517 阅读, 收藏, 编辑
摘要: 在spring中import resource file,有两种情况:classes目录和jar包 如果资源文件在classes目录: <import resource="classpath:xxx.xml" /> 备注: 1、目录下的文件 如:classes/bean/test.xml <impo 阅读全文

SLF4J使用,slf4j-api、slf4j-log4j12以及log4j的关系

2017-05-22 21:57 by Loull, 12782 阅读, 收藏, 编辑
摘要: SLF4J不同于其他日志类库,与其它有很大的不同。SLF4J(Simple logging Facade for Java)不是一个真正的日志实现,而是一个抽象层( abstraction layer),它允许你在后台使用任意一个日志类库。如果是在编写供内外部都可以使用的API或者通用类库,那么你真 阅读全文

java的static块执行时机

2017-05-15 22:21 by Loull, 428 阅读, 收藏, 编辑
摘要: 一、误区:简单认为JAVA静态代码块在类被加载时就会自动执行。证错如下: 执行结果:并没有输出" static bolck" 二、正解:static块真正的执行时机。如果了解JVM原理,我们知道,一个类的运行分为以下步骤: 其中装载阶段又三个基本动作组成: 另外如果一个类装载器在预先装载的时遇到缺失 阅读全文

java.lang.IllegalArgumentException: host parameter is null

2017-03-09 23:39 by Loull, 2573 阅读, 收藏, 编辑
摘要: 即 URL 应为 http://www.baidu.com 但是实际配置成了 www.baidu.com 所以出现此错误 阅读全文

Spring事务传播属性

2016-11-02 14:48 by Loull, 2159 阅读, 收藏, 编辑
摘要: Spring 对事务控制的支持统一在 TransactionDefinition 类中描述,该类有以下几个重要的接口方法: int getPropagationBehavior():事务的传播行为 int getIsolationLevel():事务的隔离级别 int getTimeout():事务 阅读全文

Java进程配置文件Reload

2016-04-10 20:01 by Loull, 398 阅读, 收藏, 编辑
摘要: 我们在开发Java程序的时候,很多常量信息都存在配置文件中,比如数据库连接信息、ip黑名单,事件的超时时间等等。当需要该这些配置的值时都需要重新启动进程,改动的配置才会生效,有时候线上的应用不能容忍这种停服。 还好,Apache Common Configuration给我们提供了可以检测文件修改后 阅读全文

Java应用中使用ShutdownHook友好地清理现场

2016-04-10 19:58 by Loull, 362 阅读, 收藏, 编辑
摘要: 在线上Java程序中经常遇到进程程挂掉,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码。Java中得ShutdownHook提供了比较好的方案。 JDK在1.3之后提供了Java Runtime.addShutdownHook(Thread hook)方法,可以注册 阅读全文

Java Thread dump 日志分析

2016-03-29 10:23 by Loull, 540 阅读, 收藏, 编辑
摘要: jstack Dump 日志文件中的线程状态 dump 文件里,值得关注的线程状态有: 死锁,Deadlock(重点关注) 执行中,Runnable 等待资源,Waiting on condition(重点关注) 等待获取监视器,Waiting on monitor entry(重点关注) 暂停,S 阅读全文

Java内部DNS查询实现和参数设置

2016-03-22 16:47 by Loull, 15186 阅读, 收藏, 编辑
摘要: 一、Java内部DNS查询 Java使用域名查询时,用的自己内部的域名实现机制,最后都是交给InetAddress去做DNS解析。 源码分析参考:http://blog.arganzheng.me/posts/java-dns-lookup-internal.html 二、JNDI DNS服务提供者 阅读全文

JAVA字符编码三:Java应用中的编码问题

2016-03-05 00:20 by Loull, 268 阅读, 收藏, 编辑
摘要: 第三篇:JAVA字符编码系列三:Java应用中的编码问题 这部分采用重用机制,引用一篇文章来完整本部分目标。 来源: Eceel东西在线 问题研究--字符集编码 地址:http://china.eceel.com/article/study_for_character_encoding_java.h 阅读全文