摘要: 一、概念 1、理论 把横切关注点和业务逻辑相分离是面向切面编程所要解决的问题。如果要重用通用功能的话,最常见的面向对象技术是继承(inheritance)或 组成(delegation)。但是,如果在整个应用中都使用相同的基类,继承往往会导致一个脆弱的对象体系;而使用组成可能需要对委托对象进行复杂的 阅读全文
posted @ 2017-12-15 09:33 JMCui 阅读(2129) 评论(0) 推荐(0) 编辑
摘要: 一、概述 在开发过程中,线程池可以带来如下好处: New Thread的弊端如下: a、每次New Thread新建对象性能差。 b、线程缺乏统一的管理,可能无限制的新建线程,相互之间竞争,极可能占用过多的系统资源导致死机 或者 OOM。 c、缺乏更多功能,如定时执行、定期执行、线程中断。 Java 阅读全文
posted @ 2017-12-10 17:28 JMCui 阅读(18586) 评论(0) 推荐(2) 编辑
摘要: 一、概述 Spring框架是以 简化Java EE应用程序的开发 为目标而创建的。Spring可以实现很多功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入和面向切面编程。几乎Spring所做的任何事情都可以追溯到下述的一条或多条策略: 基于POJO的轻量级和最小侵入性编程;通过依赖注 阅读全文
posted @ 2017-12-08 09:27 JMCui 阅读(1273) 评论(0) 推荐(1) 编辑
摘要: 一、前言 随着每天业务的增长,Tomcat 的catalina.out日志 变得越来越大,占用磁盘空间不说。要查看某个时候的日志的时候,庞大的日志让你顿时无从下手,所以日志的切割的变得刻不容缓。而且,切割后的日志,还可以定期清理掉久远的日志...... 二、Tomcat 日志分割 我们采用日期形式切 阅读全文
posted @ 2017-12-07 18:51 JMCui 阅读(9998) 评论(2) 推荐(6) 编辑
摘要: 一、背景 由于项目的业务是不断往前跑的,所以难免数据库的表的量会越来越庞大,不断的挤占硬盘空间。即使再大的空间也支撑不起业务的增长,所以定期删除不必要的数据是很有必要的。在我们项目中由于不清理数据,一个表占的空间竟然达到了4G之多。想想有多可怕... 这里介绍的是用MySQL 建立一个定时器Even 阅读全文
posted @ 2017-12-04 12:58 JMCui 阅读(975) 评论(0) 推荐(0) 编辑
摘要: 一、框架基本介绍 1、概念 支持普通SQL查询、存储过程和高级映射,简化和实现了Java 数据持久化层的的开源框架,主要流行的原因在于他的简单性和易使用性。 2、特点 持久层 、ORM(对象关系映射) 、轻量级、支持SQL语句。 3、工作原理 应用程序读取mybatis的配置文件,形成配置对象。 通 阅读全文
posted @ 2017-11-12 23:30 JMCui 阅读(1516) 评论(3) 推荐(0) 编辑
摘要: 一、什么是XRebel? 1、介绍 XRebel 是不间断运行在 web 应用的交互式分析器。可以看到网页上的每一个操作在前端以及服务端、数据库、网络传输都花费多少时间,当发现问题会在浏览器中显示警告信息。是调优程序、追踪性能问题的一大利器。 2、相关链接 XRebel官方简明教程:http://z 阅读全文
posted @ 2017-11-07 23:10 JMCui 阅读(9838) 评论(0) 推荐(3) 编辑
摘要: 一、前言 在工作中,难免遇到各种各样的问题,每个人似乎都有一套自己的解决方案。而我,又不想每次解决完问题就把东西扔了,捡了芝麻,丢了西瓜,什么时候才能进步勒?学习要靠积累,毕竟量变才能引起质变嘛。所以写了这篇博文,不定时更新自己项目中遇到的问题、踩过的那些坑...... 二、项目 1、文件流 jav 阅读全文
posted @ 2017-10-27 15:55 JMCui 阅读(813) 评论(0) 推荐(0) 编辑
摘要: 一、简介 阿里巴巴于10月14日在杭州云栖大会上,正式发布了《阿里巴巴Java开发规约》扫描插件!该插件基于《阿里巴巴Java开发规约》手册内容,在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,还基于Inspection机制提供了实 阅读全文
posted @ 2017-10-18 09:40 JMCui 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 一、什么是SVN? Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的 阅读全文
posted @ 2017-09-28 12:55 JMCui 阅读(929) 评论(0) 推荐(0) 编辑
摘要: 一、概念 定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和多线程技术还是有非常大的关联的。在JDK中Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务,但封装任务的类却是TimerTask类。 通过继承 TimerTask 类 阅读全文
posted @ 2017-09-14 14:50 JMCui 阅读(22960) 评论(0) 推荐(4) 编辑
摘要: 一、前言 本文要介绍使用Java5中 Lock 对象,同样也能实现同步的效果,而且在使用上更加方便、灵活,主要包括 ReentrantLock 类的使用和ReentrantReadWriteLock 类的使用。 lock 与 synchronized 关键字的区别? synchronized 是ja 阅读全文
posted @ 2017-09-13 16:07 JMCui 阅读(691) 评论(0) 推荐(0) 编辑
摘要: 一、概要 线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就是成为整体的必用方案之一。可以说,使线程进行通信后,系统之间的交互性会更强大,在大大提高cpu利用率的同时还会使程序员对各线程任务在处理过程中进行有效的把控和监督。 二、等待/通知机制 1、"wai 阅读全文
posted @ 2017-09-12 16:49 JMCui 阅读(1468) 评论(0) 推荐(3) 编辑
摘要: 一、任务 创建20个线程,其中10个线程是将数据备份到 A 数据库中,另外10 个线程将数据备份到 B 数据库中,并且备份 A 数据库和 备份 B 数据库的是交叉运行的。 二、实现 1、实现备份 A 数据库和备份 B 数据库的 task。 2、分别创建线程执行 备份任务 3、执行任务查看结果 三、结 阅读全文
posted @ 2017-09-12 11:48 JMCui 阅读(781) 评论(0) 推荐(0) 编辑
摘要: 一、概念 非线程安全:会在多个线程对同一个对象中的实例变量进行并发访问时发生,产生的后果就是"脏读",也就是取到的数据其实是被更改过的. 线程安全:获得的实例变量的值是经过同步处理的,不会出现脏读的现象。 二、synchronized 同步方法 1、非线程安全的问题存在于实例变量中,如果变量是方法内 阅读全文
posted @ 2017-09-09 15:10 JMCui 阅读(2356) 评论(2) 推荐(1) 编辑