19.SSM整合_配置式开发
1.定义实体类Student
2.定义Student表
3.定义index页面
4.定义处理器
5.定义Service
6.定义Dao接口
7.定义Dao的Mapper配置文件
8.定义MyBatis的主配置文件(很多配置已经在spring-mybatis文件中完成了)
<!-- 该配置文件中主要用于注册 Mapper 中所使用的 类的 别名,及Mapper的位置 -->
<configuration>
<!-- 别名 -->
<typeAliases>
<package name="com.ssm.model"/>
</typeAliases> <!-- Mapper 位置 -->
<mappers>
<package name="com.ssm.dao"/>
</mappers>
</configuration>
9.定义jdbc.prperties
10.定义Spring的配置文件
(1)spring-db.xml
(2)spring-mybatis.xml
<!-- 该配置文件 主要用于 注册 SqlSessionFactoryBean 以及 Mapper 动态代理生成器的Bean -->
<!-- 注册 SqlSessionFactory的Bean -->
<!-- InputStream in = Resources.getResourceAsStream("mybatis.xml");
session = new SqlSessionFactoryBuilder().build(in).openSession(); -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 指定mybatis 主配置文件位置 -->
<property name="configLocation" value="classpath:resources/mybatis.xml"/>
</bean>
<!-- 也可以使用Mapper 动态代理的方式,来生成 Dao 的 代理对象,但是这种方式一次 只能 生成一个 Dao 的代理对象,如果有多个类型的Dao,那么就需要配置多次
<bean id="studentDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
<property name="mapperInterface" value="com.ssm.dao.StudentDao"></property>
</bean>
-->
<!-- 注册 Mapper 扫描 配置器(为指定包中的 所有接口生成代理对象) -->
<!-- 生成 Dao 的代理对象,使用 Mapper 配置扫描器 会为指定包中的 所有接口生成代理对象-->
<!-- 需要注入该 代理对象时,使用 的 是 ref,(ref="IStudentDao" 或 ref="studentDao") -->
<!-- <property name="dao" ref="studentDao"></property> -->
<!-- studentDAO = sqlSession.getMapper(StudentDAO.class); -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
<!-- 指定基本扫描包,即Dao接口包 -->
<property name="basePackage" value="com.ssm.dao"></property>
</bean>
(3)spring-service.xml
(4)spring-tx.xml
<!-- 配置事务管理器 -->
<!-- 开启Spring中的事务管理(声明式的事务管理) xml-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean> <!-- 注册 事务通知 -->
<!-- 具体的advice(逻辑) 由 自之前定义的TransactionManager 来指定-->
<tx:advice transaction-manager="transactionManager" id="transactionAdvice">
<tx:attributes>
<tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice> <!-- aop 配置 -->
<!-- 想要进行事务管理,都需要运用到 AOP ,往方法前后加入开启事务 和 关闭事务的 逻辑,所以用xml 进行声明式的事务管理,也需要用到AOP -->
<aop:config>
<aop:pointcut expression="execution(* *..service.*.*(..))" id="myPointCut"/>
<aop:advisor advice-ref="transactionAdvice" pointcut-ref="myPointCut"/>
</aop:config>
11.定义SpringMVC配置文件
12.定义视图页面 show.jsp
19.SSM整合_配置式开发的更多相关文章
- SSM整合_年轻人的第一个增删改查_查找
写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...
- SSM整合_年轻人的第一个增删改查_基础环境搭建
写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...
- 《SpringMVC从入门到放肆》四、SpringMVC配置式开发(处理器映射器)
上一篇我们讲解了DispatcherServlet的url-pattern配置详解,今天我们来真正对SpringMVC进行配置式开发.所谓配置式开发是指“处理器类是程序员自己定义的.实现了特定接口的类 ...
- 3.2.2 SpringMVC配置式开发
SpringMVC配置式开发 1. SpringMVC运行原理(执行过程) 2. 需求 用户提交一个请求, 服务端处理器接收到请求后, 给出一条信息,在相应页面中显示该条信息 3. 开发步骤 (1) ...
- SpringMVC配置式开发
所谓配置式开发是指“处理器类是程序员手工定义,实现了特定接口的类,然后再在SpringMVC 配置文件中对该类进行显示的.明确的注册”的开发方式. 一.处理器映射器HandlerMapping Han ...
- SSM整合_年轻人的第一个增删改查_新增
写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...
- 18.SSM整合_搭建开发环境
1.导入jar包 mybatis的Jar包 ehcache的Jar包 spring的 Jar包 mybatis 与 spring 整合Jar包 JSON的jar包 Jaskson的Jar包 Hiber ...
- IDEA环境下SSM整合------环境配置
声明:本文纯为个人笔记整理,如有不妥之处还望及时指出,欢迎转载! 只为解决操作问题,可以从第二幅图往后看! 一.做不出详细的概念叙述和文本设计,本文主要以实战步骤为主,少量解释为辅助,下面请大家牢记两 ...
- 1.SSM整合_单表的增删改查
目标:增删改查 环境:Maven+Eclipse+Tomcat7+JDK7 思维导图: 表结构 目录结构 依赖 <dependencies> <dependency> < ...
随机推荐
- Python xlwt 模块执行出错Exception: String longer than 32767 characters
使用Python搜集数据时用到xlwt保存到excel文件,但是数据量有点大时出现 Exception: String longer than 32767 characters 搜索类似的问题都是建议 ...
- antd二级联动异步加载
/** * Created by Admin on 2016/9/19. * 批量导入 */ import React, {Component, PropTypes} from "react ...
- 常见MIME类型列表整理
译者注:英文原文标题为 Incomplete list of MIME types,意为不完整的/未完成的 MIME 类型列表. 这是一份 MIME 类型列表,以及各个类型的文档类别,按照它们的常见扩 ...
- 鸟哥私房菜基础篇:程序管理与 SELinux 初探习题
猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0440processcontrol.php 1-简单说明什么是程序 (program) 而什么是程序 ( ...
- 详解Arduino Uno开发板的引脚分配图及定义(重要且基础)
首先开发板实物图如下: 在本篇文章中,我们将详细介绍Arduino开发板的硬件电路部分,具体来说,就是介绍Arduino Uno开发板的引脚分配图及定义.Arduino Uno微控制器采用的是Atme ...
- HanLP分词工具中的ViterbiSegment分词流程
本篇文章将重点讲解HanLP的ViterbiSegment分词器类,而不涉及感知机和条件随机场分词器,也不涉及基于字的分词器.因为这些分词器都不是我们在实践中常用的,而且ViterbiSegment也 ...
- 小菜鸟之java基础
1. javac 命令的作用: javac 编译器解析 Java 源代码,并生成字节码文件的过程 2. java为什么可以跨平台: ava有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚 ...
- mysql非主键提示key2 检查索引是否设定为唯一
- Linux 下安装 redis5.0
1.redis 安装 wget http://download.redis.io/rele... tar -zxvf redis-5.0.5.tar.gz cd redis-5.0.5.tar.gz ...
- LUA的table实现
数据结构 下面的结构体是lua中所定义的table typedef struct Table { CommonHeader; lu_byte flags; /* 1<<p means ta ...