JointPoint(连接点):在一个类里面那些方法可以做扩展功能,也就是被增强,这些方法都叫做连接点
切入点:在user类里面可以哟路很多方法被增强,在实际操作中,我只是增强了update方法,实际增强的方法就叫做切入点
通知/增强:增强的逻辑或功能,比如说扩展的日志管理功能,折耳根日志管理就叫做增强
前置通知:在方法之前执行
后置通知:在方法之后执行
最终通知:在后置之后执行
异常通知:再方法出现异常的时候执行
环绕通知:在方法之前和方法之后执行
切面:把增强应用到具体的方法上面的过程叫做切面
横向,当时接口的时候用jdk动态代理
当声明一个切入点的时候,使用@PointCut来说声明,故增强方法直接使用方法名来声明
事务四个特性: ACID
原子性(Atomicity) : 事务是一个原子操作, 由一系列动作组成。 事务的原子性确保
动作要么全部完成, 要么完全不起作用。
一致性(Consistency) : 一旦事务完成(不管成功还是失败) , 系统必须确保它所建
模的业务处于一致的状态, 而不会是部分完成部分失败。 在现实中的数据不应该被破坏。
隔离性(Isolation) : 可能有许多事务会同时处理相同的数据, 因此每个事务都应该
与其他事务隔离开来, 防止数据损坏。
持久性(Durability) : 一旦事务完成, 无论发生什么系统错误, 它的结果都不应该受
到影响, 这样就能从任何系统崩溃中恢复过来。 通常情况下, 事务的结果被写到持久化
存储器中。
Springmvc它是spring的一个模块
Springmvc是一个基于mvc设计模式的web框架
mvc:模型-视图-控制器
mvc 设计模式在 b/s 系统下应用:
1、 用户发起 request 请求至控制器(Controller)控制接收用户请求的数据, 委托给模型进行处理
2、 控制器通过模型(Model)处理数据并得到处理结果HPE 企业级实训模型通常是指业务逻辑
3、 模型处理结果返回给控制器
4、 控制器将模型数据在视图(View)中展示web 中模型无法将数据直接在视图上显示, 需要通过控制器完成。 如果在 C/S 应用中模型是可以将数据在视图中展示的。
5、 控制器将视图 response 响应给用户通过视图展示给用户要的数据或处理结果。
spring web mvc架构流程
第一步: 发起请求到前端控制器(DispatcherServlet)
第二步: 前端控制器请求 HandlerMapping 查找 Handler可以根据 xml 配置、 注解进行查找
第三步: 处理器映射器 HandlerMapping 向前端控制器返回 Handler
第四步: 前端控制器调用处理器适配器去执行 HandlerHPE 企业级实训
第五步: 处理器适配器去执行 Handler
第六步: Handler 执行完成给适配器返回 ModelAndView
第七步: 处理器适配器向前端控制器返回 ModelAndViewModelAndView 是 springmvc 框架的一个底层对象, 包括 Model 和 view
第八步: 前端控制器请求视图解析器去进行视图解析根据逻辑视图名解析成真正的视图(jsp)
第九步: 视图解析器向前端控制器返回 View
第十步: 前端控制器进行视图渲染视图渲染将模型数据(在 ModelAndView 对象中)填充到 request 域
第十一步: 前端控制器向用户响应结果
前端控制器 DispatcherServlet:接受用户请求,响应结果。类似于cup,使用前端控制器来减少其他组件的耦合度
处理映射器 HandlerMapping :根据请求的url来找相应的handler
处理适配器:按照规则去调用执行处理器 (handler)
处理器 Handler:处理返回modelAndView
视图解析器:进行视图解析,解析成真正的视图
视图:view是一个接口,支持不同的view类型
springmvc
Springmvc前端控制器、处理器映射器、处理器适配器、视图解析器
前端控制器:配置dispatcherServlet,在servlet中需要加载springmvc的配置文件
处理器映射器:非注解处理器映射器、注解处理器映射器:对标记@Controller类中标识有@RequestMapping方法进行映射,在@RequestMapping中去定义URL
处理器适配器:非注解处理器适配器、注解处理器适配器:
视图解析器:在程序中不需要去指定前缀和后缀
处理器适配器调用springmvc提供参数绑定组件,将key/value数据转换成controller方法的形参,参数绑定组件用的是convert,转换器也是用convert
在一些特殊的情况下,还是需要我们自己去定义convert,比如日期格式的绑定
拦截器:
拦截器1放行,拦截2的preHandle才会执行。
拦截器2的preHandle不放行,拦截器的posthandle和afterConpletion不会执行
只要有一个拦截器不放行,则postHandle则不会执行
拦截器1不放行,拦截器2放行,则psotHandle和afterCompletion不会执行,拦截器2 也不会执行
整合步骤:
1.导入jar包
2.添加日志处理,数据库属性文件
3.mybatis和spring进行整合
3.1 创建mybatis核心配置文件
3.2 创建mybatis和spring核心配置,在其中加载db.properties属性文件,配置数据源,配置SqlSessionFactory的bean,批量传火箭mapper接口实现类的bean
4.创建我们用到的包
com.hpe.po
com.hpe.mapper
com.hpe.service
com.hpe.service.impl
com.hpe.controller
5.创建实体类
6.创建mapper接口
7.service接口
8.创建service接口的实现类
8.1 创建service和spring整合的配置文件
开启注解扫描
配置事务管理
8.2 注入mapper接口,在mapper接口属性上面加上注解@AutoWired
8.3 在service实现类上面加上注解@service ,
8.4 实现service接口具体方法
9.创建Controller类,在类上面加上注解,@controller,@requestMapping在方法上面加上@requestMapping注解,指定url。
创建springmvc.xml配置开启controller注解扫描,注解处理器控制器,注解处理器适配器,视图解析器
10. 配置前端控制器