- 浏览: 33579 次
- 性别:
- 来自: 北京
-
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
Lodop打印控件 -
yangjb:
引入jquery就可以运行了,版本不限
jquery自动及手动滑入滑出 -
nianshi:
能发可运行代码就好了
jquery自动及手动滑入滑出
文章列表
此前对于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 ...
SpringJdbc的几种不同的用法
- 博客分类:
- spring
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 ...
表单提交数据量过大导致数据丢失的问题
- 博客分类:
- web前端
今天有朋友遇到一个问题,通过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分页
- 博客分类:
- 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 ...
注解POJO比不上使用配置文件的地方
- 博客分类:
- 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时,动态的改变持久化类和表的对应关系。后来发现不 ...