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

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

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

Spring 体系结构

在这里插入图片描述

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
    修改示例如下图所示:
    在这里插入图片描述

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

setter(最主流的方式)

与上面不同的是:

  • 在类代码中,传入参数的方法不是构造方法,而是另一个自定义的起setter作用的方法。
  • 配置文件的内容略有不同。
    constructor一行改为:
<property name="b中属性名" ref="axx"/>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值