SSH配置文件和SSM配置文件的写法
一、SSH配置文件的写法(XML版本)
<util:properties id="jdbc" location="classpath:db.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="#{jdbc.driverName}"></property>
<property name="url" value="#{jdbc.url}"></property>
<property name="username" value="#{jdbc.userName}"></property>
<property name="password" value="#{jdbc.password}"></property>
<!-- 设置连接最大数 -->
<property name="maxActive" value="20"></property>
<!-- 设置连接池实例化时初始创建的连接数 -->
<property name="initialSize" value="2"></property>
</bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 指定db连接参数 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 指定hibernate框架参数 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.OracleDialect
</prop>
<prop key="hibernate.show_sql">
true
</prop>
<prop key="hibernate.format_sql">
true
</prop>
</props>
</property>
<!-- 指定hbm映射描述信息 -->
<property name="mappingLocations">
<list>
<value>classpath:org/tarena/entity/Cost.hbm.xml</value>
</list>
</property>
</bean> <bean id="template" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <!-- 事务控制 -->
<!-- 定义事务管理bean -->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
</property>
</bean> <!-- 定义方面和通知,默认环绕通知 -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<!-- 可以指定目标目标对象中不同方法采用不同的事务机制 -->
<tx:attributes>
<tx:method name="save" propagation="REQUIRED"/>
<tx:method name="update" propagation="REQUIRED"/>
<tx:method name="delete" propagation="REQUIRED"/>
<tx:method name="find*" read-only="true" propagation="REQUIRED"/>
<tx:method name="get*" read-only="true" propagation="REQUIRED"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice> <!-- 定义切入点,AOP切入 -->
<aop:config>
<aop:pointcut id="daoPoint" expression="within(org.tarena.dao..*)"/>
<!-- 将切入点和通知结合 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="daoPoint"/>
</aop:config>
二、SSH配置文件的写法(注解版本)
<util:properties id="jdbc" location="classpath:db.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="#{jdbc.driverName}"></property>
<property name="url" value="#{jdbc.url}"></property>
<property name="username" value="#{jdbc.userName}"></property>
<property name="password" value="#{jdbc.password}"></property>
<!-- 设置连接最大数 -->
<property name="maxActive" value="20"></property>
<!-- 设置连接池实例化时初始创建的连接数 -->
<property name="initialSize" value="2"></property>
</bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 指定db连接参数 -->
<property name="dataSource" ref="DataSource"></property>
<!-- 指定hibernate框架参数 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.OracleDialect
</prop>
<prop key="hibernate.show_sql">
true
</prop>
<prop key="hibernate.format_sql">
true
</prop>
</props>
</property>
<!-- 指定hbm映射描述信息 -->
<property name="mappingLocations">
<list>
<value>classpath:org/tarena/entity/Cost.hbm.xml</value>
</list>
</property>
</bean> <!-- 开启组件扫描,扫描Action,Service,Dao -->
<context:component-scan base-package="org.tarena"/> <!-- 事务控制 -->
<!-- 定义事务管理bean -->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
</property>
</bean> <!-- 开启事务注解@Transactional -->
<tx:annotation-driven transaction-manager="txManager"/>
package org.tarena.dao; import java.sql.SQLException;
import java.util.List; import javax.annotation.Resource; import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;
import org.tarena.entity.Cost; @Repository
@Scope("prototype")
public class CostDaoImpl extends HibernateDaoSupport implements CostDao { //用注解才要这么写,否则不用
@Resource//注入sf
public void setMySessionFactory(SessionFactory sf){
super.setSessionFactory(sf);
}
三、SSM配置文件的写法(XML版本)
<util:properties id="jdbc" location="classpath:db.properties"/>
<bean id="dbcp" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="#{jdbc.driverName}"></property>
<property name="url" value="#{jdbc.url}"></property>
<property name="username" value="#{jdbc.userName}"></property>
<property name="password" value="#{jdbc.password}"></property>
<!-- 设置连接最大数 -->
<property name="maxActive" value="20"></property>
<!-- 设置连接池实例化时初始创建的连接数 -->
<property name="initialSize" value="2"></property>
</bean> <bean id="ssf" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dbcp"></property>
<property name="mapperLocations" value="classpath:org/tarena/note/sql/*.xml"></property>
</bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactory" ref="ssf"></property>
<property name="basePackage" value="org.tarena.note.dao"></property>
</bean>
<!-- 开启组件扫描,service,controller -->
<context:component-scan base-package="org.tarena.note"/>
<!-- SpringMVC配置 -->
<mvc:annotation-driven/> <!-- spring事务管理(xml版) -->
<!-- 封装事务的提交回滚 -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dbcp"></property>
</bean> <!-- 指定txManager管理哪些方法 -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<!-- 可以指定目标对象中不同方法采用不同的事务机制 -->
<tx:attributes>
<tx:method name="checkLogin" read-only="true"/>
<tx:method name="load*" read-only="true"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice> <!-- 指定txManager作用在哪些组件上 -->
<aop:config>
<aop:pointcut id="servicePoint" expression="within(org.tarena.note.service.*)"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="servicePoint"/>
</aop:config> <!-- AOP实例(xml版) -->
<!-- AOP记录操作日志案例 -->
<bean id="loggerBean" class="com.tarena.aop.LoggerBean">
</bean>
<!-- AOP记录Action抛出的异常信息 -->
<bean id="exceptionBean" class="com.tarena.aop.ExceptionBean">
</bean>
<aop:config>
<!-- 公用同一个pointcut -->
<aop:pointcut id="actionPointcut" expression="within(com.tarena.action..*)"/>
<aop:aspect id="loggerAspect" ref="loggerBean">
<aop:around pointcut-ref="actionPointcut" method="logger"/>
</aop:aspect>
<aop:aspect id="exceptionAspect" ref="exceptionBean">
<aop:after-throwing pointcut-ref="actionPointcut" method="exec" throwing="ex"/>
</aop:aspect>
</aop:config>
四、SSM配置文件的写法(注解版本)
<util:properties id="jdbc" location="classpath:db.properties"/>
<bean id="dbcp" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="#{jdbc.driverName}"></property>
<property name="url" value="#{jdbc.url}"></property>
<property name="username" value="#{jdbc.userName}"></property>
<property name="password" value="#{jdbc.password}"></property>
<!-- 设置连接最大数 -->
<property name="maxActive" value="20"></property>
<!-- 设置连接池实例化时初始创建的连接数 -->
<property name="initialSize" value="2"></property>
</bean> <bean id="ssf" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dbcp"></property>
<property name="mapperLocations" value="classpath:org/tarena/note/sql/*.xml"></property>
</bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactory" ref="ssf"></property>
<property name="basePackage" value="org.tarena.note.dao"></property>
</bean>
<!-- 开启组件扫描,service,controller -->
<context:component-scan base-package="org.tarena.note"/>
<!-- SpringMVC配置 -->
<mvc:annotation-driven/> <!-- spring事务管理(注解版) -->
<!-- 封装事务的提交回滚 -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dbcp"></property>
</bean>
<!-- 带有@Transactional标记的方法会调用txManager组件追加的事务控制 -->
<tx:annotation-driven transaction-manager="txManager"/> <!-- AOP实例(注解版) -->
<!-- 开启AOP注解@Aspect,@Before,@After -->
<aop:aspectj-autoproxy />
@Component
@Aspect
public class ExceptionBean { Logger logger = Logger.getLogger(ExceptionBean.class);
//ex代表目标方法抛出的异常
@AfterThrowing(pointcut="within(com.tarena.action..*)",throwing="ex")
public void exec(Exception ex){
......
@Component//将该组件扫描到Spring容器
@Aspect//将该组件定义为方面组件
public class LoggerBean { Logger logger = Logger.getLogger(LoggerBean.class); //采用环绕通知
@Around("within(com.tarena.action..*)")
public Object logger(ProceedingJoinPoint jp) throws Throwable{
......
SSH配置文件和SSM配置文件的写法的更多相关文章
- SSH基本管理和配置文件的使用
服务端:linl_S IP:10.0.0.15 客户端:lin_C IP:10.0.0.16 SSHD服务 SSH协议:安全外壳协议.为Secure Shell的缩写.SSH为建立在应 ...
- SSM 配置文件 分析
spring 配置文件(主要整合的是spring 和 mybatis 的配置文件) 问题: 两者之间没有整合在一起的时候是怎么样的 spring配置文件: Spring配置文件是用于指导Spri ...
- Spring,SpringMVC,MyBatis,SSM配置文件比较
Spring配置文件: applicationContext.xml applicationContext.xml是Spring的核心配置文件 IOC/DI,AOP相关配置都是在这个文件中 Sprin ...
- linux和windows互传文件/用户配置文件和密码配置文件/用户组管理/用户管理
2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 linux和windows互传文件 显示日期date [root@centos_1 ...
- IDEA不能读取配置文件,springboot配置文件无效、IDEA resources文件夹指定
- linux7 grub配置文件 linux6 grub配置文件
在 grub 的 kernel 配置后面,添加 acpi_pad.disable=1 重启机器之后,开机就不会自动加载 acpi_pad 模块 一:linux6 [root@node2 ~]# cat ...
- Linux CentOS7 VMware linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理
一. linux和windows互传文件 X-shell.Securecrt远程终端,与Windows之间互传文件. 安装一个工具lrzsz [root@davery ~]# yum install ...
- linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理...
linux和windows互传文件 第一种:在linux主机上下载lrzsz软件包 1.yum install lrzsz 2.通过rz命令上传window的文件到linux主机上 用过sz 文件名下 ...
- SpringBoot(二): SpringBoot属性配置文件 SpringBoot多环境配置文件 SpringBoot自定义配置文件
1.属性配置文件 一共分为两种,一种是键值对的properties属性配置文件,一种是yaml格式的配置文件 properties配置: 2.多环境配置文件 当我们的项目中有多套配置文件 比如开发的配 ...
随机推荐
- Auto Clear Unity Console Log
功能 可以在Editor模式下执行,当然也可以Runtime模式下执行,自动清除 Console的log信息 功能需求 当在制作Editor的一些功能时,常常需要手动的点击Console窗口的Clea ...
- 如何修复AppScan漏洞
[AppScan]修复漏洞一:启用不安全的HTTP方法 (中) 漏洞背景: “启用了不安全的 HTTP 方法”属于“中”危漏洞.漏洞描述是:根据APPSCAN的报告,APPSCAN通过OPT ...
- 测试杂感:Bug Bash
缺陷大扫除(Bug Bash)是一项短期的全员测试活动.在微软,许多开发团队会在里程碑(milestone)的末期执行缺陷大扫除.程序员.测试员.程序经理.内部用户.市场人员在1~3天的时间窗口中,运 ...
- 转: __asm__ __volatile__内嵌汇编用法简述
from: http://www.embedu.org/Column/Column28.htm __asm__ __volatile__内嵌汇编用法简述 作者:刘老师,华清远见嵌入式学院高级讲师,AR ...
- Android 屏幕适配(一)百分比布局库(percent-support-lib) 解析与扩展
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46695347: 本文出自:[张鸿洋的博客] 一.概述 周末游戏打得过猛,于是周 ...
- js 方法重载
function fun1(arm1) { alert(arm1); } function fun2(arm1, arm2) { alert(arm1 + "_" + arm2); ...
- Java中的Random()函数
今天在做Java练习的时候注意到了Java里面的一个随机函数——Random,刚开始只是知道这个函数具有随机取值的作用,于是上网搜索了资料一番,做了一下一些关于Random函数的总结: Java中 ...
- [转]World Wind Java开发之五——读取本地shp文件
World Wind Java 使用IconLayer图层类表现点和多点数据,使用RenderableLayer图层表现线和面数据,一个图层只能对应一组shape文件.World Wind Java首 ...
- slidingMenu有时候需要关闭侧边栏
12个页签能往左滑动 但是往右滑动侧边栏就出来了 我们ViewPager的事件被占用了,那么就得关闭侧边栏的事件(第一个页签可以开启) 那么写个方法关闭侧边栏 slidingMenu.setTouch ...
- [CareerCup] 13.1 Print Last K Lines 打印最后K行
13.1 Write a method to print the last K lines of an input file using C++. 这道题让我们用C++来打印一个输入文本的最后K行,最 ...