zoukankan      html  css  js  c++  java
  • Spring5

    Spring5 学习历程

    Spring5 概述

    image


    Spring5 初体验

    Spring5 最基础的 jar 包

    geekfx

    Spring5 xml 配置

    geekfx

    在测试包下创建对象

    image

    输出效果

    image


    IOC 容器

    image

    image

    IOC 底层原理

    image

    image

    image

    IOC 接口

    image

    image

    image

    Bean 管理

    Bean 管理指的是两个操作:

    1. Spring 创建对象
    2. Spring 注入属性

    基于 XML 方式

    创建对象

    image

    创建对象时,默认也是执行空参构造器。

    基于 XML 方式注入属性

    DI:依赖注入,就是注入属性。

    set 方法注入属性

    image

    有参构造器注入属性

    image

    p 名称空间注入(简化的 set 方法注入)

    image

    image

    注入 null 或特殊符号

    image

    注入外部 bean

    创建两个类,service 里调用 dao 的方法,且 service 里一个 dao 的成员属性。

    image

    注入内部 bean

    创建两个类,同样是一个类的成员变量是另一个类。

    image

    级联注入

    image

    image

    数组、集合注入

    image

    集合中存储自定义类

    image

    集合的复用

    image

    image

    工厂 Bean

    image

    image

    image

    Bean 的作用域

    在 Spring 中可以设置创建的 bean 实例是单实例还是多实例。

    Spring中默认是单实例。

    image

    image

    在 Spring 修改为多实例。

    image

    image

    image

    image

    Bean 的生命周期

    1. 执行无参构造器创建 bean 实例
    2. 调用 set 方法设置属性值
    3. 执行初始化方法之前的方法(后置处理器)
    4. 执行初始化方法
    5. 执行初始化之后的方法(后置处理器)
    6. 获取到创建的 bean 实例
    7. 执行销毁方法

    image

    image

    image

    image

    image

    自动转配

    根据指定装配规则(通过属性名或通过属性类型),Spring 将自动地将匹配的属性值进行注入。

    image

    image

    image

    引入外部配置文件

    image

    image

    基于注解方式

    注解是代码特殊标记,格式:@注解名称(属性名=属性值, 属性名=属性值, ...)

    使用注解可以简化 xml 的配置。

    Spring 针对 Bean 管理中创建对象提供的注解

    1. @Component
    2. @Service
    3. @Controller
    4. @Repository

    上面 4 个注解功能是一样的,都可以用来创建 Bean 对象。

    首先需要引入 AOP 的依赖。

    image

    image

    image

    image

    组件扫描的详细配置

    image

    Bean 属性注入注解

    1. @AutoWired 根据类型注入
    2. @Qualifier 基于上面注解根据名称注入
    3. @Resource 可以根据类型也可以根据名称(Spring 不推荐使用,因为是 javax 包下的注解)
    4. @Value 注入普通类型

    image

    image

    image

    image

    完全注解开发

    创建一个类代替 Spring 的 xml 配置文件。

    image

    image


    AOP

    AOP 概述

    image

    image

    AOP 底层原理

    AOP 底层使用了动态代理,而动态代理有两种:

    1. 有接口的情况
    2. 无接口的情况

    image

    image

    JDK 动态代理的实现

    首先创建一个接口和一个实现类。

    image

    image

    创建一个类实现 InvocationHandler 接口并且实现方法,在里面可以调用被代理类的方法,实现方法的增强。

    image

    image

    运行输出。

    image

    AOP 术语

    1. 连接点
    2. 切入点
    3. 通知(增强)
    4. 切面

    image

    AOP 准备

    image

    引入依赖。

    image

    image

    image

    AOP 操作

    基于注解方式

    首先创建两个类,代理类和被代理类。

    image

    image

    在 xml 配置文件中引入名称空间,开启注解扫描、开启 Aspect 生成代理对象。。

    image

    image

    在代理类和被代理类上添加 Bean 注解,使其可以创建 Bean 对象。

    在代理类上添加注解 @Aspect ,生成代理对象。

    image

    在增强类的方法上添加注解,使用通知类型注解,使用切入点表达式配置。

    image

    运行代码(不抛出异常):

    image

    image

    运行代码(抛出异常):

    image

    image

    将相同的切入点提取

    创建一个方法,在方法上面添加注解 @Pointcut(value = "抽取出的切入点表达式)

    image

    多个增强类的优先级

    对于一个被代理类,如果有多个增强类,可以定义增强类的执行顺序,使用 @Order(value = 数值) 数字越小优先权越高。

    image

    运行代码执行:

    image

    基于 XML 配置文件方式

    image

    image

    完全注解开发

    创建一个配置类,添加配置注解、开启注解扫描、开启 Aspect。

    image

    创建代理类、被代理类。

    image

    image

    测试代码,运行结果:

    image


    JdbcTemplate

    准备工作

    引入相关的 JAR 包

    image

    配置数据库连接池:

    image

    配置 JdbcTemplate 对象,注入 DataSource:

    image

    开启组件扫描,使用注解的方式管理 Bean 对象:

    image

    创建 Service 类、Dao 类,在 Dao 注入 JdbcTemplate 对象:

    image

    image

    JdbcTemplate 操作

    创建一个数据表:

    image

    创建对应的 JavaBean:

    image

    在 BookDao 层里创建添加方法:

    image

    测试:

    image

    image

    更新和删除

    image

    image

    查询

    查询返回某个值

    image

    测试:

    image

    查询返回实体类对象

    image

    image

    查询返回 List 集合

    image

    image

    批量添加

    image

    image

    批量更新、删除

    image

    image

    image

    image

    image


    事务操作

    image

    image

    Spring 提供的事务管理的一套 API:

    image

    声明式事务管理

    基于注解

    image

    image

    image

    image

    参数配置

    Transactional 注解里面的参数:

    image

    propagation 传播行为

    当多个事务方法之间调用,如何进行管理事务。

    image

    image

    image

    isolation 隔离级别

    image

    image

    image

    image

    基于 XML 配置文件方式

    image

    完全注解开发

    创建一个 TransactionConfig 的配置类:

    image

    测试:

    image


    Spring5 新特性

    整个 Spring5 框架的代码基于 Java8,运行时兼容 JDK9,许多不建议使用的类和方法在代码库中删除。

    Spring5 框架自带通用的日志封装

    Spring5 已经移除 Log4jConfigListener,官方建议使用 Log4j2

    引入 jar 包依赖

    image

    创建 log4j.xml

    image

    创建 Log4jTest 类

    image

    Nullable 注解

    image

    函数式注册对象

    Spring5 核心容器支持函数式风格 GenericApplicationContext

    image

    Spring5 整合 JUnit4

    引入 jar 包:

    image

    创建一个测试配置类,使用注解的方式:

    image

    Spring5 整合 JUnit5

    引入 JUnit5 的依赖:

    image

    image

    不一定每天 code well 但要每天 live well
  • 相关阅读:
    左眼右眼
    Mac 的“任务管理器” —— 活动监视器
    [分享] VIM 常用命令及游戏练级
    iOS 7 如何关闭已打开的应用(App)
    iPhone 如何设置彩信 ?
    JavaScript —— attachEvent 方法的使用
    习惯&感恩
    MySQL 基础 备份和恢复
    Python 数据结构 树
    Python 正在表达式
  • 原文地址:https://www.cnblogs.com/geekfx/p/13193398.html
Copyright © 2011-2022 走看看