【JavaEE学习笔记】(一)Spring概述&&Spring Core

文章目录

  • 笔者放在最前面的一点废话
  • Spring 体系结构
  • Spring core 中的控制反转与依赖注入
  • Spring IoC 容器实现方式
  • 依赖注入(DI)的实现方式(利用Java的 **反射** 机制)
    • constructor
    • setter(最主流的方式)

笔者放在最前面的一点废话

注:这是个人对学习资料的五分摘录、五分总结,仅供学习之用。不一定正确,如有错误,还望各位大神指出。
所参考的资料基于Eclipse开发,我对其中提到的一些与具体IDE相关的细节都略过了,个人认为在不同的IDE上做法略有不同(但都是形式上的),用什么开发工具,需要用到的时候再去探索具体怎么处理,此处主要弄懂原理。

Spring 体系结构

【JavaEE学习笔记】(一)Spring概述&&Spring Core_第1张图片

Spring core 中的控制反转与依赖注入

控制反转(inversion of control)
依赖注入:dependency injection

两者本质上描述的是同一件事(减少耦合),只是IoC讲的是一种抽象概念,DI指的是具体实现方式。

举个例子:原来是在对象A中 new了 对象B,一旦对象A或B发生更改,那两个都得玩完(耦合)。在框架中,将这个获取对象B的权利从A转移到了容器,将他俩隔开了。

Spring IoC 容器实现方式

主要由BeanFactory接口及其子接口ApplicationContext实现。

  • 创建BeanFactory实例时需提供XML文件的绝对路径(不常用,了解即可)
  • 创建ApplicationContext实例的三种方法:
    • FileSystemXMLApplicationContext:从文件系统找,即采用绝对路径,灵活性较差,不推荐。
    • ClassPathXMLApplicationContext:从类路径目录(src目录下找,即相对路径),一般采用。
    • web应用中,通过web服务器创建。步骤:
      • 将相应的spring-web-release.jar包复制到WEB-INF/lib目录下,并在web.xml中添加如下黑体所示代码:

依赖注入(DI)的实现方式(利用Java的 反射 机制)

constructor

顾名思义:在实现了A接口的a类中通过构造方法传入实现了B接口的b类。
并创建xml配置文件。内容有两块:

  • 将两个类托管给Spring的bean
  • 指定b的构造器传入的实参是a
    修改示例如下图所示:
    【JavaEE学习笔记】(一)Spring概述&&Spring Core_第2张图片

(笔者还没开始用Maven,刚接触一点Gradle,相信有了强大的包管理工具,现在这一块在实际开发的时候 应该 不用自己写那么麻烦的,此处要弄懂xml文件里的是什么,为什么是这么写的)

setter(最主流的方式)

与上面不同的是:

  • 在类代码中,传入参数的方法不是构造方法,而是另一个自定义的起setter作用的方法。
  • 配置文件的内容略有不同。
    constructor一行改为:

你可能感兴趣的:(笔记,java入门,spring,java-ee,学习,笔记)