sql 优化
- 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
- where 子句中避免使用
- !=或<>操作符
- 对字段进行 null 值判断
- or 来连接条件,用union all ,union代替
- in 和 not in 也要慎用,能用 between ,exists 就不要用 in,
- 对字段进行函数操作
- like查询,不能以通配符开头
- “=”左边进行函数、算术运算或其他表达式运算
- 用具体的字段列表代替“*”
- 明知道只有一条记录返回,建议加上limit 1
spring aop
- Spring AOP(Aspect Oriented Programming,面向切面编程)是OOPs(面向对象编程)的补充。在面向对象编程中,关键的单元是对象,AOP的关键单元是切面,或者说关注点。
- 我们的应用中,经常需要做一些事情,但是这些事情与核心业务无关,比如,要记录所有 update 方法的执行时间时间,操作人等等信息,记录到日志, 通过 Spring 的 AOP 技术,就可以在不修改 update 的代码的情况下完成该需
- 例如事务管理、权限、日志、安全等。
Spring AOP 实现原理
Spring AOP 中的动态代理主要有两种方式,JDK 动态代理 和 CGLIB 动态代理。JDK 动态代理通过反射来接收被代理的类,并且要求被代理的类必须实现一个接口。JDK 动态代理的核心是 InvocationHandler 接口和 Proxy 类。
如果目标类没有实现接口,那么 Spring AOP 会选择使用 CGLIB 来动态代理目标类。CGLIB(Code Generation Library),是一个代码生成的类库,可以在运行时动态的生成某个类的子类,注意,CGLIB 是通过继承的方式做的动态代理,因此如果某个类被标记为 final,那么它是无法使用 CGLIB 做动态代理的
AOP有哪些可用的实现?
基于Java的主要AOP实现有:
AspectJ
Spring AOP
JBoss AOP
网友评论