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> < ...
随机推荐
- 跨域form下载方式 批量下载
downloadFileForm:function(fid) { var url = "https://file.xxxx.com/fileDownload.do"; var in ...
- python 内置数据结构 切片
切片 通过索引区间访问线性结构的一段数据 sequence[start:stop] 表示返回[start,stop]区间的子序列 支持负索引 start为0,可以省略 stop为末尾,可以省略 超过上 ...
- 阿里巴巴java规则p3c结合sonar使用
sonar插件位置: jar包放至$SONAR_HOME/extensions/plugins下,重启sonar即可 如何在sonarqube的pmd插件中整合阿里开发规范 alibaba p3c s ...
- 实例节点的NTP服务器地址配置正确,而且能够ping通, 但是在chronyc sources指令中显示NTP服务器状态为“?”
问题:如果实例节点的NTP服务器地址配置正确,而且能够ping通, 但是在chronyc sources指令中显示NTP服务器状态为“?”, 该如何检查并操作. 1)在chrony配置文件中,检查 ...
- 【AMAD】django-channels -- 为Django带来异步开发
动机 简介 个人评分 动机 目前web生态的发展带来了很多异步特性,比如websocket.而原生Django并不支持. 简介 django-channels1为Django带来了Websocket, ...
- Hackergame2019 web
前几天跟着几个大佬一起看了看中科大的Hackergame2019,这个比赛主要针对的是新手,激发新生对CTF比赛的兴趣,虽然我已经大三了,但实在是因为我过于five,也只能帮大佬打打杂,这里把自己做的 ...
- OpenCV.3.4.6.附加依赖项
ZC:VS2015 "项目属性 --> 链接器--> 输入--> 附加依赖项" 中 添加内容 1.E:\OpenCV_something\opencv-3.4.6 ...
- NDK学习笔记-使用现有so动态库
前面将的都是如何使用C/C++文件生成so动态库,那么在使用别人的so动态库的时候应该怎么做呢?这篇文章就是使用一个变声功能的动态库,完成对于以有so动态库的说明. 动态库来源 在互联网中,有着许许多 ...
- Mysql性能优化之---(二)
建立适当的索引 说起提高数据库性能,索引是最物美价廉的东西了.不用加内存,不用改程序,不用调sql,只要执行个正确的'create index',查询速度就可能提高百倍千倍,这可真有诱惑力.可是天下没 ...
- Reactor系列(十)collectMap集合
#java#reactor#collect#hashMap# 转换成Map 视频讲解: https://www.bilibili.com/video/av80048104/ FluxMonoTestC ...