Spring学习(一)

Spring是啥?

  • Spring是一个开源框架,为解决企业应用开发的复杂性二创建的,但现在已经不止应用与企业应用;
  • 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架;
    • 从大小与开销两方面而言Spring都是轻量的;
    • 通过控制反转(IoC)的技术达到松耦合的目的;
    • 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发;
    • 包含并管理应用对象的配置和生命周期,这个意义上是一种容器
    • 将简单的组件配置、组合成为复杂的应用,这个意义上是框架。

为什么是Spring?

  • 在Spring上开发应用简单;
  • 在Spring上开发应用方便;
  • 在Spring上开发应用快捷。

Spring带来了复杂的JavaEE开发的春天。

Spring框架的主要模块

从下往上看分别是:

  • 单元测试
  • 核心容器,包括bean容器
  • 功能组件:AOP、Aspects、Instrumentation、Messaging
  • 应用与数据继承或者web
    在这里插入图片描述

什么是IOC

IOC:控制反转,控制权的转移,应用程序本身并不负责依赖对象的创建和维护,而是由外部容器负责创建和维护。

DI:依赖注入,是其一种实现方式。依赖注入是在编译阶段尚未知所需的功能是来自哪个的类的情况下,将其他对象所依赖的功能对象实例化的模式。这就需要一种机制用来激活相应的组件以提供特定的功能,所以依赖注入是控制反转的基础。否则如果在组件不受框架控制的情况下,框架又怎么知道要创建哪个组件?

目的:创建对象并且组装对象之间的关系。

在Java中依赖注入有以下三种实现方式:

  • 构造器注入
  • Setter方法注入
  • 接口注入

Bean容器初始化之BeanFactory和ApplicationContext

  • BeanFactory 可以理解为含有bean集合的工厂类。BeanFactory 包含了种bean的定义,以便在接收到客户端请求时将对应的bean实例化。

  • BeanFactory还能在实例化对象的时生成协作类之间的关系。此举将bean自身与bean客户端的配置中解放出来。

  • BeanFactory还包含了bean生命周期的控制,调用客户端的初始化方法(initialization methods)和销毁方法(destruction methods)。

从表面上看,applicationContext如同bean factory一样具有bean定义、bean关联关系的设置,根据请求分发bean的功能。但applicationContext在此基础上还提供了其他的功能。

  • 提供了支持国际化的文本消息
  • 统一的资源文件读取方式
  • 已在监听器中注册的bean的事件

applicationContext的三种实现方式:

  • ClassPathXmlApplicationContext:从classpath的XML配置文件中读取上下文,并生成上下文定义。应用程序上下文从程序环境变量中取得。
ApplicationContext context = new ClassPathXmlApplicationContext(“bean.xml”);
  • FileSystemXmlApplicationContext :由文件系统中的XML配置文件读取上下文。
ApplicationContext context = new FileSystemXmlApplicationContext(“bean.xml”);
  • XmlWebApplicationContext:由Web应用的XML文件读取上下文。

什么是spring beans

Spring bean 表示受到Spring管理的对象。具体说来,它是被Spring框架容器初始化、配置和管理的对象。Spring bean是在Spring的配置文件中定义(现在也可以通过annotation注解来定义),在Spring容器中初始化,然后注入到应用程序中的。

因为在最早的版本中,Spring是被设计用来管理JavaBean的,所以Spring管理的对象会被称为“bean”。当然,现在Spring已经可以管理任何对象,即使它不具备默认构造器和设置方法(getter和setter)这些JavaBean的特性。然而,”Spring bean“这个术语仍然被保存了下来。

Spring注入

Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为。
常用的两种注入方式:设值注入,构造注入。

依赖注入(DI)

关于DI,在W3Cschool上有一段很浅显易懂的话,搬过来给大家看看。

Spring 最认同的技术是控制反转的依赖注入(DI)模式。控制反转(IoC)是一个通用的概念,它可以用许多不同的方式去表达,依赖注入仅仅是控制反转的一个具体的例子。

当编写一个复杂的 Java 应用程序时,应用程序类应该尽可能的独立于其他的 Java 类来增加这些类可重用可能性,当进行单元测试时,可以使它们独立于其他类进行测试。依赖注入(或者有时被称为配线)有助于将这些类粘合在一起,并且在同一时间让它们保持独立。

到底什么是依赖注入?让我们将这两个词分开来看一看。这里将依赖关系部分转化为两个类之间的关联。例如,类 A 依赖于类 B。现在,让我们看一看第二部分,注入。所有这一切都意味着类 B 将通过 IoC 被注入到类 A 中。

依赖注入可以以向构造函数传递参数的方式发生,或者通过使用 setter 方法 post-construction。由于依赖注入是 Spring 框架的核心部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值