Spring+SpringMVC+Mybatis框架介绍
Spring简介
Spring是什么?
Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IoC(Inverse Of Control:控制反转)和AOP(Aspect Oriented Programming:面向切面编程)为内核。
提供了展现层SpringMVC和持久层Spring JDBCTemplate以及业务事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。
Spring发展历程
Spring的优势
- 方便解耦,简化开发
- AOP编程的支持
- 声明式事务的支持
- 方便程序的测试
- 方便集成各种优秀框架
- 降低JavaEE API的使用难度
- Java源码是经典学习范例
Spring的体系结构
Spring程序开发步骤
- 导入Spring开发的基本包坐标
- 编写Dao接口和实现类
- 创建Spring核心配置文件
- 在Spring配置文件中配置UserDaoImpl
- 使用Spring的API获得Bean实例
Spring快速入门代码实现
Spring配置文件
Bean标签基本配置
用于配置对象交由Spring来创建
默认情况下它调用的是类中的无参构造函数,如果没有无参构造函数则不能创建成功。
基本属性:
- id:Bean实例在Spring容器中的唯一标识
- class:Bean的全限定名称
Bean标签范围配置
scope:指对象的作用范围,取值如下:
- singleton——默认值,单例的
- prototype——多例的
- request
- session
- global session
Bean生命周期配置
- init-method:指定类中的初始化方法名称
- destroy-method:指定类中销毁方法名称
Bean实例化三种方式
- 无参构造方法实例化
- 工厂静态方法实例化
- 工厂实例方法实例化
依赖注入概念
依赖注入(Dependency Injection):它是Spring框架核心IOC的具体实现。
依赖注入方式
- 构造方法
- set方法
依赖注入的数据类型
- 注入数据的三种数据类型
- 普通数据类型
- 引用数据类型
- 集合数据类型
引入其他配置文件(分模块开发)
可以将部分配置拆解到其他配置文件中,在Spring主配置文件通过import标签进行加载
1 | <import resource="applicationContext-xxx.xml"/> |
Spring配置数据源
数据源(连接池)的作用
- 数据源(连接池)是提高程序性能出现的
- 实现实例化数据源,初始化部分连接资源
- 使用连接资源时从数据源中获取
- 使用完毕后将连接资源归还给数据源
常见数据源(连接池)
DBCP、C3P0、BoneCP、Druid等
数据源的开发步骤
手动创建Druid数据源
抽取jdbc.properties文件
Spring产生数据源对象
Spring容器加载properties文件
Spring注解开发
Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率。
Spring原始注解
Spring原始注解主要是替代
注意:
使用注解进行开发时,需要在applicationContext.xml中配置组件扫描,作用是指定哪个包及其子包下的Bean需要进行扫描以便识别使用注解配置的类、字段和方法。
Spring新注解
使用上面注解还不能全部替代xml配置文件,还需要使用注解替代的配置如下:
- 非自定义的Bean的配置:
- 加载Properties文件的配置
- 组件扫描的配置:
- 引入其他文件:
Spring集成Junit
Spring集成web环境步骤
- 配置ContextLoaderListener监听器
- 使用WebApplicationContextUtils获得应用上下文
SpringMVC简介
SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow中。
SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struts2,成为最优秀的MVC框架。它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无需实现任何接口。同时,它还支持RESTful编程风格的请求。
SpringMVC快速入门
需求:客户端发起请求,服务器端接受请求,执行逻辑并进行视图跳转
开发步骤:
- 导入SpringMVC相关坐标
- 配置SpringMVC核心控制器DispathcerServlet
- 创建Controller类和视图页面
- 使用注解配置Controller类中业务方法的映射地址
- 配置SpringMVC核心文件spring-mvc.xml
- 客户端发起请求测试
SpringMVC的数据响应方式
- 页面跳转
- 直接返回字符串
- 通过ModelAndView对象返回
- 回写数据
- 直接返回字符串
- 返回对象或集合
SpringMVC获得请求数据
客户端请求参数的格式是:name=value&name=value…
服务器端要获得请求的参数,有时还需要进行数据的封装,SpringMVC可以接收如下类型的参数:
- 基本类型参数
- POJO类型参数
- 数据类型参数
- 集合类型参数
MVC获取数据细节
- 中文乱码问题
- @RequestParam和@PathVariable
- 自定义类型转换器
- 获得Servlet相关API
- @RequestHeader和@CookieValue
- 文件上传
SpringMVC组件解析
SpringMVC执行流程
SpringMVC注解解析
SpringMVC组件扫描
SpringMVC的XML配置
SpringMVC数据响应
数据响应方式
页面跳转-返回字符
页面跳转-返回ModelAndView
回写数据-直接回写字符串
回写数据-直接回写json格式字符串
回写数据-返回对象或集合
SpringMVC获得请求参数
请求参数类型
获得基本类型参数
获得POJO类型参数
获得数据类型参数
获得集合类型参数
开启静态资源访问
配置全局乱码过滤器
参数绑定注解
Restful风格参数获取
自定义类型转换器
获得Servlet相关API
获得请求头信息
SpringMVC请求-文件上传
文件上传的原理
单文件上传
多文件上传
JdbcTemplate基本使用
概述
开发步骤
快速入门代码实现
spring产生模板对象分析
spring产生模板对象代码实现
常用操作-更新操作
常用操作-查询操作
Spring练习
环境搭建步骤分析
环境搭建实现
用户表和角色表分析
角色列表展示分析
角色列表展示-controller层实现
角色列表展示-service和dao层实现
角色列表展示-配置实现
角色列表展示-页面展示
角色的添加操作
用户列表展示
用户添加操作-添加页面展示
用户添加操作-添加数据到数据库
删除用户操作
SpringMVC拦截器
拦截器的作用
interceptor和filter区别
快速入门
快速入门详解
用户登录权限控制分析
用户登录权限控制代码实现
SpingMVC异常处理
异常处理的思路
异常处理的方式
简单异常处理器
自定义异常处理器
aop简介
什么是aop
aop的作用及其优势
aop的底层实现
基于jdk的动态代理
基于cglib的动态代理
aop相关概念
aop开发明确的事项和知识要点
xml方式实现aop
快速入门
切点表达式的写法
通知的种类
切点表达式的抽取
知识要点
注解方式实现aop
快速入门
注解通知种类和切点表达式抽取
知识要点
Spring的编程式事务控制
相关对象介绍
PlatformTransactionManager
TransactionDefinition
TransactionStatus和知识要点
Spring基于xml的声明式事务控制
什么是声明式事务控制
转账业务环境搭建
快速入门
事务属性参数的配置
知识要点
Spring基于注解的声明式事务控制
快速入门
知识要点
Mybatis简介
原始jdbc操作
mybatis的概述
代码实现
知识小结
mybatis的映射文件概述
mybatis的增删改查
插入数据操作
插入数据注意点
修改和删除操作
知识小结
mybatis核心配置文件
概述
environments标签
mappers标签
properties标签
typealiases标签
知识小结
mybatis相应API
mybatis的dao层实现
传统实现方式
接口代理方式实现规范
接口代理方式代码实现
知识小结
mybatis映射文件深入
动态sql概述和环境搭建
动态sql-if
动态sql-foreach
动态sql-sql片段的抽取
动态sql-知识小结
mybatis核心配置文件深入
typeHandler概述
typeHandler测试环境搭建
自定义DateTypeHandler实现
plugins标签介绍和查询全部代码编写
plugins分页助手代码实现
plugins分页助手的分页相关数据获取
知识小结
mybatis的多表操作
一对一模型介绍
订单环境代码实现
一对一的配置实现
一对多配置实现
多对多配置实现
知识小结
mybatis注解开发
常用注解介绍
xml完成基本的crud
注解完成基本的crud
一对一的注解开发
一对多的注解开发
多对多注解开发
ssm整合
原始整合步骤概述
原始整合方式环境搭建
原始整合方式mybatis配置文件内容填充
原始整合方式spring和mvc配置文件内容填充
原始整合方式web.xml配置文件内容填充
原始整合方式-逻辑代码编写
原始整合方式-测试
mybatis整合spring实现
声明式事务控制实现
IDEA快捷键
查看接口对应的实现类:ctrl+alt+b
今天7月20必须看完ssm
21 22 23看完spring boot 然后做项目
问题
方法内部类要访问变量必须要声明为final吗?