02_注解开发

1.注解驱动的意义

1.1.什么是注解驱动

image.png

1.2.注解驱动的弊端

image.png

2.常用注解(重点)

2.1.Ioc

  • 启动注解功能
    image.png

    包路径配置的越详细越好

  • bean的定义
    image.png
  • bean的作用域
    image.png
  • bean的生命周期
    image.png
  • 代码
    image.png
    image.png
    image.png
    image.png
    image.png

2.2.DI

  • 注入非引用类型数据
    image.png
    image.png
  • 注入引用类型属性
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

2.3.第三方资源

image.png
image.png
image.png

2.4.properties文件

image.png
image.png

2.5.纯注解格式

目前xml文件还在,还在的意义是声明一个扫描包的配置
image.png
image.png
image.png

2.6.团队开发

image.png
image.png

3.bean加载控制

3.1.依赖加载

  • DependsOn
    image.png
    image.png
    image.png
    image.png
  • order
    image.png
    image.png
  • lazy
    image.png
  • 应用场景
    image.png

4.整合第三方技术(重点)

4.1.综合案例(注解整合MyBatis)

  • 环境搭建
    image.png
    image.png
    image.png
    image.png
  • 分析:注解整合的实质就是把xml里的内容全部转换成注解
    image.png
    image.png
    image.png
  • 功能实现
    image.png
    image.png
    image.png

4.2.综合案例改造(注解整合Junit)

image.png
image.png
image.png

5.IoC底层核心原理

5.1.IOC核心接口

image.png
image.png
image.png
image.png

5.2.bean加载过程解析

  • 开发环境
    image.png
    image.png
    image.png
    image.png
  • 组件扫描器
    image.png
    image.png
    image.png
  • 自定义组件过滤器
    image.png
    image.png
    image.png
  • 自定义导入器
    image.png
    image.png

    写法一,直接写类名
    image.png
    image.png
    写法二,加载配置文件
    image.png
    写法三,配置文件包含多个类
    image.png
    image.png

    写法四,配置文件写一个dao所在的路径,借助工具类实现
    image.png
    image.png
  • 自定义注册器
    image.png
    image.png
    image.png
  • 总结:组件扫描加过滤规则或者自定义过滤规则,控制哪些bean可以加载或者不可以加载@CompoentScan的属性excludeFilters;自定义导入器用于非spring系统改造spring,大量的bean没有加标记为bean的注解,统一在配置文件里写类的全路径或者类所在的path,用@Import导入自己写的自定义导入器;自定义注册器,彻底代替@CompoentScan这个注解的,用@Import导入自己写的自定义注册器

5.3.bean初始化过程解析

  • 所有的bean在被创建之前和创建之后都会做一些相同的事,把这些事定义在BeanPostProcessor接口里
  • 所有的bean在创建之前都会调用init方法,但是这个init方法不是必须要定义的,所以有个InitializingBean接口来去约束所有的bean初始化
  • 工厂创建以后需要做的一些事


    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

6.代码

https://gitee.com/baojun521/spring02.git

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容