Dependency Injection(DI) 依赖注入

  • Inversion of Control(IoC) 控制反转 的一个具体实例
  • 解说:

    • 所谓依赖注入,就是由 IOC 容器在运行期间,动态地将某种依赖关系注入到对象之中
  • 来历:

    • 对于控制反转

      • 原始方式:A 控制 B
      • IoC 方式:A 需要 B, IoC 容器 C 这时候给 A 提供 B
  • 这是:获得依赖对象的过程被反转了

    • 有 A –> 直接控制 B
    • 变成 –> C 给 A 提供 B

Inversion of Control(IoC) 控制反转

纯文字解说 https://blog.csdn.net/ivan820819/article/details/79744797

https://www.jianshu.com/p/17b66e6390fd

  • 用途

    • 用来实现对象之间的 “解耦”
  • 简要解说 借助于“第三方”实现具有依赖关系的对象之间的解耦

    简单来说就是把复杂系统分解成相互合作的对象,这些对象类通过封装以 后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以 灵活地被重用和扩展。

    IOC 理论提出的观点大体是这样的:借助于“第三方”实现具有依赖关系 的对象之间的解耦

  • 两种实现

    • DL

      • Dependency Lookup
      • 已经被抛弃了
    • DI

      • Dependency Injection
  • Setter Injection
  • Constructor Injection

支持的功能

  • 依赖注入
  • 依赖检查
  • 自动装配
  • 支持集合
  • 指定初始化方法 和 销毁方法
  • 支持回调某些方法

Spring 容器

BeanFactory

  • 类似 HashMap
  • 通常只提供 put(), get()
  • 低级容器

ApplicationContext

  • 高级容器

JNDI

Java Naming and Directory Interface https://www.cnblogs.com/xdp-gacl/p/3951952.html

  • 通过只提供一个名称,用来设置数据库连接的详细参数

    • 在 xml 文件中配置

spring OXM

https://www.cnblogs.com/xuxiuxiu/p/6653060.html

  • OXM: Object XML Mapper/ O/X mapper

    • 用于把 object 映射成 xml 文件,或解析 xml 文件成 object

JMS, 消息服务

  • JMS: Java Message Service

    • Java 消息服务应用程序的接口
  • 使用目标

    • 程序之间
    • 分布式系统中,异步通讯
    • 平台无关

Java Transaction 事务

https://blog.csdn.net/weixin_37934748/article/details/82774230

分类

JDBC 事务

JTA 事务

Java Transaction API

容器 事务

三层架构

  • 表现层: web, 或者说 控制层 @Controller
  • 业务层: service
  • 持久层: dao 层

Spring AOP

Aspect Oriented Programming

Web 层

Web 模块

Web-MVC

MVC 与 REST Web

Web-Socket

Web-Portlet