从零开始玩转JMX——简介和Standard MBean

MX的全称为Java Management Extensions. 顾名思义,是管理Java的一种扩展。这种机制可以方便的管理、监控正在运行中的Java程序。常用于管理线程,内存,日志Level,服务重启,系统环境等。简介基本术语MBean:是Managed Bean的简称,可以翻译为“管理构件”。在JMX中MBean代表一个被管理的资源实例,通过MBean中暴露的方法和属性,外界可以获取被管理的...
阅读(39) 评论(0)

Tomcat学习--tomcat配置使用log4j

tomcat自身提供了日志收集及打印功能,但对日志文件的大小及日志文件生成个数没法控制,因此tomcat提供了一个扩展日志的功能。1、首先去tomcat官网下载两个jar:tomcat-juli-adapters.jar和tomcat-juli.jar2、下载log4j的jar包:log4j-1.2.17.jar 及配置log4j的配置文件log4j.properties#log4j.rootLo...
阅读(69) 评论(0)

Tomcat学习--禁止tomcat日志中stderr和stdout日志打印

最近在使用tomcat时,由于代码问题导致logbac日志打印过多,由于logback可以控制日志文件的个数和日志文件大小,不会产生过多日志问题,但是发现tomcat由于是每天生成一个日志文件,导致一天所有的日志都打印到同一个文件中,导致日志文件过大,并且日志文件中的内容包括很多东西,如下图,直接导致磁盘被占满。1、解决方法首先考虑是禁止tomcat打印stderr和stdout日志修改tomca...
阅读(316) 评论(0)

Dubbo入门学习--动态代码编译器Compiler

在之前一篇博客中Dubbo入门学习--SPI实现@SPI和@Adaptive,我们已经了解到Dubbo通过生成动态代码来实现动态代理的,Dubbo提供了动态代码编译器接口Compiler。Compiler接口:@SPI("javassist") public interface Compiler { /** * Compile java source code. * * @par...
阅读(107) 评论(0)

Dubbo入门学习--SPI实现@SPI和@Adaptive

上一篇博客 Dubbo入门学习--Dubbo服务提供接口SPI机制我们已经简单介绍了Dubbo的SPI机制,这篇博客来剖析一下Dubbo是如何使用SPI机制的,在接口中使用@SPI("值")使用默认的实现类,如果我们不想使用默认的实现类是如何处理的,...
阅读(90) 评论(0)

Dubbo入门学习--Dubbo服务提供接口SPI机制

Dubbo采用微内核+插件体系,使得设计优雅,扩展性强。那所谓的微内核+插件体系是如何实现的呢!大家是否熟悉spi(service providerinterface)机制,即我们定义了服务接口标准,让厂商去实现(如果不了解spi的请谷歌百度下), jdk通过ServiceLoader类实现spi机制的服务查找功能。可以参考博客 Java spi机制浅谈  接下来我们来了解一下Dubbo是如何实...
阅读(95) 评论(0)

Dubbo入门学习--Dubbo总体架构的设计介绍

背景:随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。垂直应用架构``当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相...
阅读(93) 评论(0)

SpringMVC--配置FastJSON为JSON处理器

springMVC使用fastJson很简单,在springMVC的配置文件中作如下配置: text/html;charset=UTF-8 appl...
阅读(285) 评论(0)

并发编程--线程池拒绝策略RejectedExecutionHandler(三)

线程池的拒绝策略,是指当任务添加到线程池中被拒绝,而采取的处理措施。当任务添加到线程池中之所以被拒绝,可能是由于:第一,线程池异常关闭。第二,任务数量超过线程池的最大限制。线程池共包括4种拒绝策略,它们分别是:AbortPolicy, CallerRunsPolicy, DiscardOldestPolicy和DiscardPolicy。ThreadPoolExecutor默认的拒绝策略是Abor...
阅读(346) 评论(0)

并发编程--线程池ThreadPoolExecutor实现原理(二)

ThreadPoolExecutor是线程池类。对于线程池,可以通俗的将它理解为"存放一定数量线程的一个线程集合。线程池允许若个线程同时允许,允许同时运行的线程数量就是线程池的容量;当添加的到线程池中的线程超过它的容量时,会有一部分线程阻塞等待。线程池会通过相应的调度策略和拒绝策略,对添加到线程池中的线程进行管理。"1. workersworkers是HashSet类型,即它是一个Worker集合...
阅读(315) 评论(0)

并发编程--线程池Executor(一)

合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。线程池的架构图如下:1....
阅读(457) 评论(0)

Java集合--ArrayBlockingQueue

ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列。线程安全是指,ArrayBlockingQueue内部通过“互斥锁”保护竞争资源,实现了多线程对竞争资源的互斥访问。而有界,则是指ArrayBlockingQueue对应的数组是有界限的。 阻塞队列,是指多线程访问竞争资源时,当竞争资源已被某线程获取时,其它要获取该资源的线程需要阻塞等待;而且,ArrayBlockingQu...
阅读(319) 评论(0)

Java集合--CopyOnWriteArraySet

它是线程安全的无序的集合,可以将它理解成线程安全的HashSet。有意思的是,CopyOnWriteArraySet和HashSet虽然都继承于共同的父类AbstractSet;但是,HashSet是通过“散列表(HashMap)”实现的,而CopyOnWriteArraySet则是通过“动态数组(CopyOnWriteArrayList)”实现的,并不是散列表。和CopyOnWriteArray...
阅读(307) 评论(0)

Java集合--CopyOnWriteArrayList

CopyOnWriteArrayList相当于线程安全的ArrayList。和ArrayList一样,它是个可变数组;但是和ArrayList不同的时,它具有以下特性:1. 它最适合于具有以下特征的应用程序:List 大小通常保持很小,只读操作远多于可变操作,需要在遍历期间防止线程间的冲突。2. 它是线程安全的。3. 因为通常需要复制整个基础数组,所以可变操作(add()、set() 和 remo...
阅读(220) 评论(0)

Spring源码学习--Bean的生命周期

Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。一、生命周期流程图:  Spring Bean...
阅读(470) 评论(0)

Spring源码学习--Spring事物

Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用hibernate进行数据访问时,DataSource实际为SessionFactory,Transacti...
阅读(260) 评论(1)

Spring Aop源码学习--JoinPoint连接点

JoinPoint连接点:程序执行过程中明确的点,简单的来说就是Java程序执行过程中的方法。JoinPoint接口图:JoinPoint通过抽象实现成为一个个的Method,在执行每个JoinPoint所代表的Method中,会执行对应的Advice(参考博客Spring Aop源码学习--Advice通知)。JoinPoint接口提供的方法public interface Joinpoint ...
阅读(174) 评论(0)

Spring Aop源码学习--Advice通知

Advice通知,所谓通知指的就是指拦截到连接点之后要执行的代码,通知分为前置、后置、异常、最终、环绕通知五类(1)BeforeAdvice、AfterAdvice:SpringAOP自定义的通知,用于拦截的方法之前或者之后,继承了AOP联盟的通知接口Advice。 (2)MethodBeforeAdvice、AfterReturningAdvice:仍然是SpringAOP自己的接口设计 Met...
阅读(418) 评论(0)

Spring Aop源码学习--Advisor切面

Advisor接口及其实现类是Advice(通知)和PointCut(切入点)的一个组合体,按照aop的定义其就是一个Aspect切面。Advisor及其实现类:在接口Advisor中定义了获取Advice通知的方法public interface Advisor { //获取通知 Advice getAdvice(); boolean isPerInstance(); }在Point...
阅读(312) 评论(0)

Spring Aop源码学习--PointCut切入点

PointCut切入点简单来说就是用来指明Advice(增强)所作用的地方(一般指方法),PointCut简单来说是一个基于表达式的拦截条件。PointCut接口及实现类:PointCut接口提供了两个接口分别对类和方法进行匹配过滤,如果类及方法匹配成功则Advice就可以作用在方法上。public interface Pointcut { /** * Return the ClassFi...
阅读(392) 评论(0)
317条 共16页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:382633次
    • 积分:6957
    • 等级:
    • 排名:第3429名
    • 原创:302篇
    • 转载:12篇
    • 译文:0篇
    • 评论:89条
    Github
    访问:https://github.com/IAMTJW
    博客专栏
    最新评论