动态代理

简介

Spring AOP实现原理是java语言的动态代理,学习后写篇日记记录下来!

阅读全文 »

Spring web项目中常用的annotation (一)

背景

在使用Spring框架开发web项目的过程中,使用注解可以实现代码的松耦合,灵活方便的进行web开发。这篇文章将详细介绍开发过程中用到的一些annotation及加载原理。

阅读全文 »

Web项目中使用Maven

背景

在程序开发过程中,免不了引用jar包和项目打包。以往引用jar包的操作是手动将jar包拷到lib目录下,如果需要更换版本就要将原来的删除,然后拷贝新版本的jar包。使用maven可以通过配置文件来管理jar包的引用,新增、删除和修改只需要更改配置文件即可。 maven也支持项目打包:.jar、.war、tar.gz等等很多复杂的包都支持,而且配置灵活。

阅读全文 »

Spring MVC 结合使用Log4j2记录日志

背景

当业务飞速发展的时候,如何最快的发现异常,甚至预警异常,是系统设计中不能不考虑的一部分。

阅读全文 »

使用AOP和注解,动态切换数据源

当项目上遇到读写分离,分表分库,版本升级数据导出等多数据源需求的时候,如何实现动态切换数据源?

阅读全文 »

再见,一起奋斗的大伙伴们

有些事情不去尝试,又如何知道自己不行。尝试过、努力了,失败了又如何~

阅读全文 »

心情日志

岁月总是催着我们成长,每个第一次都是生涩却充满着希望。

阅读全文 »

静态资源监控开发流程

目的

  1. 监控网站页面静态资源的加载时间和超时次数(每五分钟);
  2. 分类监控各种静态资源响应时间,比如img、js、css、link等;
阅读全文 »

MySql索引原理及查询优化

写在前面

索引对查询的速度有着至关重要的影响,增加索引也是进行数据库性能调优的第二步(我理解第一步是数据库设计)。当我们系统的数据库表读写比例在10:1左右甚至更大时,我们经常会遇到的问题是查询效率问题。如何提高查询效率,则需要优化查询语句及增加合理的索引。

假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多)。如果对之建立B-Tree索引,则只需要进行log100(10^6)=3次页面读取,最坏情况下耗时30ms。这就是索引带来的效果,很多时候,当你的应用程序进行SQL查询速度很慢时,应该想想是否可以建索引。

阅读全文 »

spring_mvc_aop_总结

定义

aop,面向切面编程。开发工作中,我们往往只想关注业务需求的逻辑实现,但是我们也需要了解系统的性能、日记记录等等,但是如果每次都在实现业务的地方加入记录性能的实现,这样就大大的耦合了业务逻辑实现和框架实现。 为此aop的目的是将与业务逻辑无关的需求分离开来独立实现,可以用来实现日志记录、性能统计、安全控制、事务处理等模块。主要原理是拦截器和反射。

阅读全文 »