`
yangjb
  • 浏览: 33579 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

spring aop

此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题。最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP 来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。本文是权当本人的自己AOP学习笔记,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。 1.对部分函数的调用进行日志记录,用于观察特定问题在运行过程中的函数调用情况 2.监控部分重要函数,若抛出指定的异常,需要以短信或邮件方式通知相关人员 3.金控部分重要函数的执行时间     事实上,以上需求没有AOP也能搞定,只是在实现过程 ...
关于Spring JTA的介绍非常多了,这里就不再一再阐述其优越性怎么怎么了,直接开始正题。一个大致的需求如下,用户在进行增删改操作时,会同时更新2至3个数据库的数据表,操作需要事务来包裹,以便在操作其中一个数据库的数据表失败时,可以将其他数据库已执行的动作回滚。 由于主框架是Spring,所以将研究的重点放在Spring所提供的的JTA事务上,google了很多资料,发现有几种实现的技术,如JOTM,Atomikos,以及J2EE容器所提供的JTA实现,如JBOSS也都提供了JTA的实现,不过个人喜好来讲,非常厌恶使用JNDI来访问容器组件,所以,重点放在JOTM和Atoimikos两种技 ...
hibernate的两种事务管理jdbc 和jta方式。下边说说两者的区别 一、说明一下jdbc和jta方式事务管理的区别: JDBC事务由Connnection管理,也就是说,事务管理实际上是在JDBC Connection 中实现。事务周期限于Connection的生命周期之内 JTA 事务管理则由 JTA 容器实现,JTA 容器对当前加入事务的众多Connection 进 行调度,实现其事务性要求。JTA的事务周期可横跨多个JDBC Connection生命周期。 二、在了解jdbc和jta事务的基础上,再来讨论hibernate的两种事务 对于基于JDBC Transa ...
Spring对jdbc做了良好的封装,本人在学习时做了以下几种方式的尝试 首页先来创建一个dao接口 Java代码  1.package com.wys.dao;   2.  3.public interface IUserDao {   4.    void save();   5.}  package com.wys.dao; public interface IUserDao { void save(); } 第一种方式通过继承JdbcDaoSupport来获取JdbcTemplate,需要注入JdbcTemplate Java代码  1.package ...
1.利用ClassPathXmlApplicationContext 可以从class path中读取XML文件 (1) ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); UserDao userDao = (UserDao)context.getBean("userDao"); (2) ClassPathXmlApplicationContext resource = new ClassPathXmlApplicati ...
我们都知道spring提供两种管理事务的方式,一种是声明式事务,一种是编程式事务。 Spring的声明式事务管理,基于Spring的AOP,不再需要不停地写commit,rollback,(但Spring仍然没有放弃编程式的事务管理策略)。 Spring的编程式事务管理,为我们提供了一个TransactionTemplate,使用回调机制,将应用代码从样板式的资源获取和释放代码中解放出来,不再有大量的try/catch/finally/try/catch代码块。 这两种事务处理方式都非常地优雅,它不需要与任何特定的事务API耦合,并支持多种持久层方案。 (1)声明式事务:基于Sprin ...
1、<include> 利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml中使用<include>标签引入其他配置文件。 比如一个网上购物程序,可以把用户配置、商品配置、订单配置分别放在3个配置文件user.xml、goods.xml和order.xml中,然后在struts.xml中将这3个配置文件引入: struts.xml: 01  <? xml version = "1.0" encoding = "UTF-8" ?>  02  <!DOC ...
今天有朋友遇到一个问题,通过POST方式提交数据量过大,在后台接收不到数据,当时第一个感觉是GET方式有数据限制,POST没有数据限制,可是查看代码发现确实是POST提交,问题出在哪里了呢?         通过查看资料,发现tomcat默认传输最大的数据限制为2M,最后的解决办法是设大tomcat的conf下的server.xml中8080Connector的maxPostSize的值.(设为0是取消POST的大小限制)         打开tomcat目录下的conf目录,修改server.xml 文件 增加 maxPostSize="0" 即可 ...
Hibernate中的对象有三种状态: 瞬时状态 (Transient),持久状态 (Persistent),   1. 1. 瞬时状态 (Transient) 由 new 命令开辟内存空间的 Java 对象,也就是平时所熟悉的普通 Java 对象。 如: Student stu = new Student(); 瞬时对象特点 ...

hibernate分页

package com.redbaby.dao; import java.math.BigDecimal;import java.util.HashMap;import java.util.List;import java.util.Map; import javacommon.xsqlbuilder.XsqlBuilder;import javacommon.xsqlbuilder.XsqlBuilder.XsqlFilterResult; import org.hibernate.Query;import org.hibernate.Session;import org.hiberna ...
Hibernate缓存深入详解[贵在深入]
1、跨数据库,POJO将无法公用 使用注解方式的POJO,将会使POJO变成了hibernate私有品,如果ID上使用SEQUENCE等某个数据特有的生成方式,当需要将这个POJO作为公共包提供给其他项目公用时,而那个项目又使用了另外一种数据库,这就导致要修改POJO,也就是POJO公用失败,修改POJO还可能导致dao甚至service的修改。 2、注解不集中,管理没有XML方便     个人建议,系统的所有POJO单独放到一个目录下,这个目录只放POJO,不放任何其他的DAO,SERVICE等,这个目录下再细分各个模块来放各个模块的POJO 3、代码不美观 4、不适合换框架     我们项目 ...
我参与的某项目出现了一个这样的需求。用户的每个月的数据库很大 >1000W。用户需要针对每个月做查询。为了加快用户的查询速度,这里打算按月分表存数据。怎么用hibernate实现这个功能呢。 比如,分出12个表,每个保存一个月的。每个表的字段是一模一样的。区别只是当用户查询时,要选择不同的表。如果配出12个持久化类来,这样的设计太死了。于是想到hibernate能不能自动根据时间先择要操作的表。 研究了一下还真行。 刚开始也看到别人说类似的需求,用的是Hibernate的 NamingStrategy接口,想通过它想办法在执行sql时,动态的改变持久化类和表的对应关系。后来发现不 ...
Global site tag (gtag.js) - Google Analytics