一、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配置文件的写法的更多相关文章

  1. SSH基本管理和配置文件的使用

    服务端:linl_S    IP:10.0.0.15 客户端:lin_C    IP:10.0.0.16   SSHD服务 SSH协议:安全外壳协议.为Secure Shell的缩写.SSH为建立在应 ...

  2. SSM 配置文件 分析

    spring 配置文件(主要整合的是spring 和 mybatis 的配置文件) 问题: 两者之间没有整合在一起的时候是怎么样的 spring配置文件:    Spring配置文件是用于指导Spri ...

  3. Spring,SpringMVC,MyBatis,SSM配置文件比较

    Spring配置文件: applicationContext.xml applicationContext.xml是Spring的核心配置文件 IOC/DI,AOP相关配置都是在这个文件中 Sprin ...

  4. linux和windows互传文件/用户配置文件和密码配置文件/用户组管理/用户管理

    2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 linux和windows互传文件 显示日期date [root@centos_1 ...

  5. IDEA不能读取配置文件,springboot配置文件无效、IDEA resources文件夹指定

  6. linux7 grub配置文件 linux6 grub配置文件

    在 grub 的 kernel 配置后面,添加 acpi_pad.disable=1 重启机器之后,开机就不会自动加载 acpi_pad 模块 一:linux6 [root@node2 ~]# cat ...

  7. Linux CentOS7 VMware linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理

    一. linux和windows互传文件 X-shell.Securecrt远程终端,与Windows之间互传文件. 安装一个工具lrzsz [root@davery ~]# yum install ...

  8. linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理...

    linux和windows互传文件 第一种:在linux主机上下载lrzsz软件包 1.yum install lrzsz 2.通过rz命令上传window的文件到linux主机上 用过sz 文件名下 ...

  9. SpringBoot(二): SpringBoot属性配置文件 SpringBoot多环境配置文件 SpringBoot自定义配置文件

    1.属性配置文件 一共分为两种,一种是键值对的properties属性配置文件,一种是yaml格式的配置文件 properties配置: 2.多环境配置文件 当我们的项目中有多套配置文件 比如开发的配 ...

随机推荐

  1. 数据结构Java实现02----线性表与顺序表

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. SQL语句统计每天、每月、每年的数据

    1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月select year(orderti ...

  3. String类常用方法。

    一,字符数组与字符串. 一个字符串可以变成一个字符数组,同样,一个字符数组可以变成一个字符串. 在String类中提供了以下操作方法. 1)将字符串变成字符数组:public char[] toCha ...

  4. Redis集群知识解析

    redis集群在启动的时候就自动在多个节点间分好片.同时提供了分片之间的可用性:当一部分redis节点故障或网络中断,集群也能继续工作.但是,当大面积的节点故障或网络中断(比如大部分的主节点都不可用了 ...

  5. docker下部署gitlab

    docker用来隔离应用还是很方便的,一来本身的操作较为简单,二来资源占用也比虚拟机要小得多,三来也较为安全,因为像数据库这样的应用不会再全局暴露端口,同时应用间的通信通过加密和端口转发,更加安全. ...

  6. sqlserver字段类型详解(转)

    bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型, ...

  7. linux命令细究

    ls -ldahipFtr    -t按照修改时间    -r翻转排序 /etc/profile  别名grep --color ls -pF ^$空行egrep -v "^#|^$&quo ...

  8. windows 80端口被占用

    首先关了iis服务,或者把端口换了. 然后关了SQLServer Reporting Service. http://www.2cto.com/os/201505/399603.html

  9. 开源(免费)三维 GIS(地形,游戏)

    先写想法: 想做个简单的地形漫游,于是考虑在ww直接开发,或找个控件形式的开发组件. 最大的期望有: 1. 支持google的sketchup,快速智能三维建模 2. 设计模式做好点,最好先做成组件形 ...

  10. MVC中利用ActionFilterAttribute过滤关键字

    在开发过程中,有时候会对用户输入进行过滤,以便保证平台的安全性.屏蔽的方法有很多种,但是今天我说的这种主要是利用MVC中的ActionFilterAttribute属性来实现.由于MVC天然支持AOP ...