一、需要用到的包
二、
Suppliers.java 属性 id ,name
Suppliers.xml
HelloWordDao.java
HelloWord.java
HelloWordAspect.java:
public class HelloWordAspect {
public void beforeAdvice() {
System.out.println("添加之前===before");
}
public void afterAdvice() {
System.out.println("添加之后===after");
}
}
SqlMapConfig.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings useStatementNamespaces="true" />
<sqlMap resource="com/spring/bean/Suppliers.xml" />
</sqlMapConfig>
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!-- jdbc属性文件 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<!-- 数据源 -->
<!--事实上是因为DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${db.driver.class}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
-->
<!-- dbcp连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${db.driver.class}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
<!-- ibatis配置文件 -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:SqlMapConfig.xml</value>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="helloworddao" class="com.spring.dao.HelloWordDao">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
<bean id="helloword" class="com.spring.service.HelloWord">
<property name="helloWordDao" ref="helloworddao"></property>
</bean>
<!-- 切面类 -->
<bean id="helloAspect" class="com.spring.test.HelloWordAspect"></bean>
<!-- aop实现 -->
<aop:config>
<aop:pointcut id="pointcut" expression="execution(* com.spring.service..*(..))"/>
<aop:aspect ref="helloAspect">
<aop:before pointcut-ref="pointcut" method="beforeAdvice"/>
<aop:after pointcut="execution(* com.spring.service..*(..))" method="afterAdvice"/>
</aop:aspect>
</aop:config>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 配置事务特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="find*" read-only="true"/>
<tx:method name="get*" read-only="true"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!-- 配置哪些类的方法需要加事务 -->
<aop:config>
<aop:pointcut id="pointcutManager" expression="execution(* com.spring.service..*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcutManager"/>
</aop:config>
</beans>
log4j.properties:
# This is the configuring for logging displayed in the Application Server
log4j.rootCategory=WARN, stdout,logfile
#stdout configure
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d %p [%c] - <%m>%n
#logfile configure
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=${catalina.home}/logs/sniper.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern= %d %p [%c] - <%m>%n
# Control logging for other open source packages
# Changing the log level to DEBUG when debug
log4j.logger.org.springframework=INFO
# Changing the log level to DEBUG will display SQL Hibernate generated
log4j.logger.java.sql=DEBUG
log4j.logger.org.hibernate=ERROR
log4j.logger.org.hibernate.SQL=ERROR
log4j.logger.org.hibernate.cache=ERROR
log4j.logger.net.sf.ehcache=ERROR
测试类:Test_HelloWord.java
public class Test_HelloWord {
public static void main(String [] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWord h = context.getBean("helloword", HelloWord.class);
List<Suppliers> list = h.findAll();
for (Suppliers o : list) {
System.out.println(o);
}
}
}
输出结果:
2012-04-24 17:20:48,968 INFO [org.springframework.context.support.ClassPathXmlApplicationContext] - <Refreshingorg.springframework.context.support.ClassPathXmlApplicationContext@a56a7c: startup date [Tue Apr 24 17:20:48 CST 2012]; root of context hierarchy>
2012-04-24 17:20:49,109 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - <Loading XML bean definitions from class path resource [applicationContext.xml]>
2012-04-24 17:20:49,812 INFO [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer] - <Loading properties file from class path resource [jdbc.properties]>
2012-04-24 17:20:49,890 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] - <Pre-instantiating singletons inorg.springframework.beans.factory.support.DefaultListableBeanFactory@1b09468: defining beans [propertyConfigurer,dataSource,sqlMapClient,helloworddao,helloword,helloAspect,org.springframework.aop.config.internalAutoProxyCreator,pointcut,org.springframework.aop.aspectj.AspectJPointcutAdvisor#0,org.springframework.aop.aspectj.AspectJPointcutAdvisor#1,transactionManager,txAdvice,pointcutManager,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0]; root of factory hierarchy>
添加之前===before
2012-04-24 17:20:52,531 DEBUG [java.sql.Connection] - <{conn-100000} Connection>
2012-04-24 17:20:52,546 DEBUG [java.sql.Connection] - <{conn-100000} Preparing Statement: select t.* from t_suppliers t WHERE Rownum <10 >
2012-04-24 17:20:52,843 DEBUG [java.sql.PreparedStatement] - <{pstm-100001} Executing Statement: select t.* from t_suppliers t WHERE Rownum <10 >
2012-04-24 17:20:52,843 DEBUG [java.sql.PreparedStatement] - <{pstm-100001} Parameters: []>
2012-04-24 17:20:52,843 DEBUG [java.sql.PreparedStatement] - <{pstm-100001} Types: []>
2012-04-24 17:20:52,937 DEBUG [java.sql.ResultSet] - <{rset-100002} ResultSet>
2012-04-24 17:20:53,078 DEBUG [java.sql.ResultSet] - <{rset-100002} Header: [ID, NAME]>
2012-04-24 17:20:53,078 DEBUG [java.sql.ResultSet] - <{rset-100002} Result: [216150, 2011newSupplier8]>
2012-04-24 17:20:53,078 DEBUG [java.sql.ResultSet] - <{rset-100002} Result: [48645, 包头市九福数码科技有限公司12]>
2012-04-24 17:20:53,078 DEBUG [java.sql.ResultSet] - <{rset-100002} Result: [52400, 52400]>
2012-04-24 17:20:53,078 DEBUG [java.sql.ResultSet] - <{rset-100002} Result: [52405, 包头市太平洋计算机科技有限公司]>
2012-04-24 17:20:53,078 DEBUG [java.sql.ResultSet] - <{rset-100002} Result: [54057, 包头市遂通汽车销售服务有限公司]>
2012-04-24 17:20:53,078 DEBUG [java.sql.ResultSet] - <{rset-100002} Result: [52425, 包头市大兴汽车贸易有限公司]>
2012-04-24 17:20:53,078 DEBUG [java.sql.ResultSet] - <{rset-100002} Result: [44238, 呼和浩特云顿影视科技有限公司]>
2012-04-24 17:20:53,078 DEBUG [java.sql.ResultSet] - <{rset-100002} Result: [45012, 包头市华城科教设备有限公司]>
2012-04-24 17:20:53,078 DEBUG [java.sql.ResultSet] - <{rset-100002} Result: [99, 无中标商]>
添加之后===after
id:216150 name:2011newSupplier8
id:48645 name:包头市九福数码科技有限公司12
id:52400 name:52400
id:52405 name:包头市太平洋计算机科技有限公司
id:54057 name:包头市遂通汽车销售服务有限公司
id:52425 name:包头市大兴汽车贸易有限公司
id:44238 name:呼和浩特云顿影视科技有限公司
id:45012 name:包头市华城科教设备有限公司
id:99 name:无中标商
相关推荐
SSI框架整合(Struts2.1+Spring3.0+Ibatis 2.3) 下载之后执行.sql文件创建表和sequence 记得改数据库访问地址以及数据库登录用户名密码 项目访问路径 localhost:8080/SSI_Demo1 一个简单的例子(Oracle数据库增删改查...
标题 "spring3.0 + ibatis+jquery+注解建立dao、service类" 提供了构建Web应用程序的核心技术栈,主要包括三个主要部分:Spring框架、iBatis持久层框架和jQuery前端库。以下是对这些技术及其整合应用的详细说明: 1...
Struts2.1.8、Spring3.0和iBatis2.3是经典的Java Web开发框架组合,它们各自承担着不同的职责,协同工作以构建高效、可维护的Web应用程序。接下来,我们将深入探讨这三个框架的核心特性以及它们如何优雅地整合在一起...
这是自己整合的Spring 3.0+Struts2+Mybatis 3 + p6spy +ehcache的平台框架,内含一点示例代码,目前ehcache没有使用。直接编译后发布就能用 测试环境基于JDK1.6+Tomcat 6.0. 大家拿到后请根据实际情况修改 ...
### Spring 3.0 整合 iBatis 3 的实践与配置 #### 一、背景介绍 在软件开发过程中,经常会遇到需要整合多种技术框架的情况。本文将详细介绍如何将 Spring 3.0 与 iBatis 3 进行整合。尽管作者提到 iBatis 3 在当时...
耗时3天,对Struts2+Ibatis+Spring3.0+JreeChart进行了完整整合 包括Spring3.0的事务配置 OSCache二级缓存的配置 log4j实现输出Sql到控制台 JfreeChart与Struts2,Spring3.0的整合 对一个简单的表实现查询,批量删除...
【标题】"ibatis3.0+jsp(demo)"是一个基于Java Web的示例项目,它结合了iBATIS 3.0数据访问框架和JSP(JavaServer Pages)技术来展示如何在实际应用中进行数据库操作。这个项目提供了一个完整的数据库交互流程,包括...
在Spring 3.0中整合iBatis 3 Beta10是一个相对复杂的过程,因为官方文档并未明确提及对iBatis 3的支持。不过,通过一些自定义配置和理解两个框架的基本原理,开发者可以实现这样的整合。下面我们将详细介绍如何进行...
本示例涉及了Spring 3.0、iBatis 2.0和DWR 2.0这三个框架的整合,旨在创建一个高效、灵活的Web应用程序。下面我们将详细探讨这三个框架及其整合的关键知识点。 首先,Spring 3.0是Java领域的一款全功能的轻量级应用...
Spring3.0版本引入了更多新特性,如JSR-303校验支持、RESTful服务构建等,增强了对其他框架的整合能力。 将这三个框架整合在一起,可以实现高效且松耦合的Java Web开发。以下是整合步骤和关键知识点: 1. **配置...
org.springframework.orm-3.0.0.M4.jar: 整合第三方的ORM框架,如hibernate,ibatis,jdo,以及spring的JPA实现 org.springframework.transaction-3.0.0.M4.jar: 为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和...
培训信息发布平台v1.0(企业端) ...这个项目是在以前做过的一个小项目的基础上整理而得,实现的功能很简单,还很不完备,只是那时学习struts2 + Spring2.5 + iBatis2.3 + ExtJs3.0整合开发的一个习作。
Spring3.0x版本引入了一系列改进和新特性,其中对于依赖管理进行了优化,使得开发者能够更方便地整合不同的技术栈。本文将深入探讨Spring3.0x MVC中的依赖关系,并详细介绍各个依赖分组及其对应的JAR文件。 #### ...
2. `org.springframework.asm-3.0.0.RELEASE`:包含ASM库,这是一个用于生成和修改Java字节码的库,Spring使用它来实现某些高级功能,如代理和动态类型生成。 3. `org.springframework.aspects-3.0.0.RELEASE`:...
总之,Struts2、Spring和iBatis的整合能构建出一套高效、灵活的Java Web应用架构,便于团队协作和项目维护。在实际开发中,根据项目的具体需求,可能还需要考虑其他组件的集成,如Hibernate、MyBatis3等,以达到最佳...
SSI框架整合(Struts2.1+Spring3.0+Ibatis 2.3) 下载之后执行.sql文件创建表和sequence 项目访问路径 localhost:8888/SSI_Demo1 一个简单的例子(Oracle数据库增删改查示例) 用户的增删改查操作,适合初学者...