摘要:
Spring有两大核心,IOC和AOP。IOC在java web项目中无时无刻不在使用。然而AOP用的比较少,的确也是一般的项目用的场所不多。事务控制基本都用,但却是Spring封装的不需要我们再去实现,但Spring的AOP远不止这些,不能因为项目中没有使用,而不去学习及理解。我觉得这是作为一个java web软件开发人员必须具备的技能。业内很多将AOP应用在日志记录上,可惜我们项目没这么做,后面需要学习下。在这先把Spring AOP的基本用法,在脑子里理一边,做一次积累。 阅读全文
摘要:
在上面的代码中
execution 是方法运行
public 是指定public的方法,也可以不写直接:execution(* cn.dao.IUserDAO.*(..)
* 是任意返回值,可以有返回值,也可以是void没有返回值的方法
cn.dao.IUserDAO.* 是指定目录下的指定类任意方法
cn.dao.IUserDAO.insert* 是指定目录下的指定类insert开头的任意方法
cn.dao.IUserDAO.*.* 是指定 阅读全文
摘要:
此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题。最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习SpringAOP相关的内容。本文是权当本人的自己AOP学习笔记,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。
1.对部分函数的调用进行日志记录,用于观察特定问题在运行过程中的函数调用情况
2.监控部分重要函数,若抛出指定的异常,需要以短信或邮件方式通知相关人员
3.金控部分重要函数的执行时间 阅读全文
摘要:
AOP是Spring的核心,Spring不但自身对多种框架的集成是基于AOP,并且以非常方便的形式暴露给普通使用者。以前用AOP不多,主要是因为它以横截面的方式插入到主流程中,担心导致主流程代码不够清晰,定位问题不够方便,而在计费二期的项目里需要一个很适合用AOP来做的功能,就是要把对外接口和所调用的外部接口的耗时时间给记录下来,这个需求主要来自于计费一期的联调,常常发生系统间交互不够顺畅的情况,这就需要看每个接口调用时间来判定是谁的问题。
计费中心是整个后台系统的中间环节,与其他系统交互很多,这样的接口也很多,如果在每个接口的调用前后加时间记录比较繁琐,也影响主流程代码的美观,因此比较优雅的方式是用AOP,在不侵入原有代码的情况下,加上对接口调用的监控,并且可以在不需要的时候很容易移除。今天尝试了一下,感觉还挺好用,下面讲述一下实施步骤:
1)引入包依赖 阅读全文
摘要:
SpringSide是以Spring Framework为核心的,Pragmatic风格的JavaEE应用参考示例,是JavaEE世界中的主流技术选型,较佳实践的总结与演示。
经过漫长的7个月和6个RC版本后,SpringSide 4.0的稳定版终于赶在黄石公园爆发前上画了。《一代宗师》还是留给外星人看吧。
整个SpringSide 4.0版的主要修改记录:
•DAO框架转用Spring Data JPA + Hibernate 4.x,同時增加MyBatis的演示。 阅读全文
摘要:
目录(?)[-]
1.四MyBatis主配置文件
1.properties属性
2.settings设置
3.typeAliases类型别名
4.typeHandlers类型句柄
5.ObjectFactory对象工厂
6.plugins插件
7.environments环境
8.mappers映射器 阅读全文
摘要:
目录(?)[-]
1.三动态SQL语句
1.selectKey 标签
2.if标签
3.if where 的条件判断
4.if set 的更新语句
5.if trim代替whereset标签
1.trim代替set
6.choose when otherwise
7.foreach
1.参数为array示例的写法
2.
3.参数为list示例的写法 阅读全文
摘要:
1.二SQL语句映射文件2增删改查参数缓存
1.select
2.insert
3.updatedelete
4.sql
5.parameters
1.基本类型参数
2.Java实体类型参数
3.Map参数
4.多参数的实现
5.字符串代入法
6.cache缓存 阅读全文
摘要:
目录(?)[-]
1.二SQL语句映射文件1resultMap
1.resultMap
1.idresult
2.constructor
3.association联合
1.使用select实现联合
2.使用resultMap实现联合
4.collection聚集
1.使用select实现聚集
2.使用resultMap实现聚集
5.discriminator鉴别器 阅读全文
摘要:
一MyBatis简介与配置MyBatisSpringMySql
MyBatis简介
MyBatisSpringMySql简单配置
搭建Spring环境
建立MySql数据库
搭建MyBatis环境
创建实体类 StudentEntity
创建数据访问接口
创建SQL映射语句文件
创建MyBatis的mapper配置文件
修改Spring 的配置文件
测试StudentMapper 阅读全文
摘要:
本文的目标:
从实现的角度来认识SpringIoC容器。
观察的角度:
从外部接口,内部实现,组成部分,执行过程四个方面来认识SpringIoC容器。
本文的风格:
首先列出SpringIoC的外部接口及内部实现所涉及到的组件列表;
其次介绍组件之间的相互关系以对整个执行过程有所把握;
然后针对每一个组件的简单介绍,包括组件的类结构图,核心功能描述,重要接口的重要方法描述;
接下来看SpringIoC容器实现对面向对象基本设计原则的遵守;
最后是后记部分。
术语约定:
组件:本文中的组件是指在功能概念上具有相对独立性的功能单元,物理结构上的特征一般由一组接口、一组抽象类、一组具体实现类、异常类、工具类所组成;
这里的组件是一种相当狭义的描述,根据上下文的不同,组件可以有不同的表现形式,如:相对于Spring框架,SpringIoC容器就是Spring框架的一个组件,
相对于系统的整体框架设计,Spring框架就是整体框架的一个组件,这里组件与模块的概念基本等同。
接口方法:一般定义在接口中,提供给外部调用的方法,接 阅读全文
摘要:
mybatis+spring+struts2框架整合 阅读全文