学习笔记: Spring基础2 相关术语概念

学习来源:SSM主流框架入门与综合项目实战

贴一些术语定义之类的,主要的还是代码,就不贴了


AOP术语

  • JoinPoint 被拦截到的点,Spring中这些点指的是方法
  • PointCut 对哪些JoinPoint进行拦截的定义
  • Advice 拦截到 JoinPoint之后所要做的事情
  • Introduction 在不修改类的代码的前提下在运行期间动态添加一些 Method 或 Field

  • Target 代理的目标对象

  • Weaving 创建代理对象的过程
  • Proxy 产生的代理类
  • Aspect JoinPoint 和 Introduction 的结合

使用aspectj

  • @Before 前置通知 BeforeAdvice 权限验证
  • @AfterReturning 后置通知 AfterReturningAdvice 日志记录
  • @Around 环绕通知 MethodInterceptor
  • @AfterThrowing 异常抛出通知 ThrowAdvice
  • @After 最终通知 final 不管是否异常都会执行

使用execution函数

execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)

  • 所有public方法
    • execution(public * * (..))
  • 指定包下的方法
    • execution(* com.example.dao.*(..)) 不包含子包
    • execution(* com.example.dao..*(..)) 包含子包
  • 指定包所有方法
    • execution(* com.example.dao.AAA.*(..))
  • 实现特定接口
    • execution(* com.example.dao.AAA+.*(..))
  • 所有以save开头的方法
    • execution(* save*(..))

使用jdbc template

对原始 JDBC 的简单封装

相关配置

1
2
3
4
5
6
7
8
9
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/imooc_chat_robot"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="datasource"/>
</bean>

增 改
查
查
查


数据库事务相关术语

  • 事务 要么完全执行,要么完全不执行
  • 原子性 不可分割 结构上
  • 一致性 必须使从一个一致性状态变为另一个一致性状态 业务规则上
  • 隔离性 一个事务的执行不能被另一个所干扰
  • 持久性

  • 脏读:读取未commit的数据

  • 不可重复读 读两次,结果不一样 在这个事务中有别的事务插入
  • 幻读 置零,另一个事务介入置10,再次读不为0

  • Mysql事务隔离级别

  • JDBC事务隔离级别

  • Spring事务处理api

  • Spring事务传播行为