【Spring】Spring入门(一)HelloSpring

11 篇文章 0 订阅

Spring IoC容器和bean介绍

IoC 也称为依赖注入(DI)。这是一个过程,其中对象定义它们的依赖关系,即它们使用的其他对象,仅通过构造函数参数、工厂方法的参数或在对象实例被构造或从工厂方法返回后在对象实例上设置的属性. 然后容器在创建 bean 时注入这些依赖项。这个过程基本上是相反的,因此称为控制反转(IoC),bean 本身通过使用类的直接构造来控制其依赖项的实例化或位置,或诸如服务定位器模式。

在org.springframework.beans和 org.springframework.context包是Spring框架的IoC容器的基础。该BeanFactory接口提供了一种能够管理任何类型对象的高级配置机制。 ApplicationContext是它的一个子接口, BeanFactory.它增加了与 Spring 的 AOP 特性的更容易集成;消息资源处理(用于国际化),事件发布;和应用层特定的上下文,例如WebApplicationContext 用于 Web 应用程序。

简而言之,它BeanFactory提供了配置框架和基本功能,并 ApplicationContext添加了更多企业特定的功能。该 ApplicationContext是对一个完整的超集BeanFactory,并在Spring的IoC容器的描述本章独占使用。有关使用BeanFactory代替 的更多信息,ApplicationContext,请参阅第 5.15 节,“BeanFactory”。

在 Spring 中,构成应用程序主干并由 Spring IoC容器管理的对象称为beans。bean 是由 Spring IoC 容器实例化、组装和管理的对象。否则,bean 只是应用程序中众多对象之一。Bean 以及它们之间的依赖关系反映在容器使用的配置元数据中。

容器概述

该接口 org.springframework.context.ApplicationContext 代表 Spring IoC 容器,负责实例化、配置和组装上述 bean。容器通过读取配置元数据来获取有关要实例化、配置和组装哪些对象的指令。配置元数据以 XML、Java 注释或 Java 代码表示。它允许您表达组成应用程序的对象以及这些对象之间丰富的相互依赖关系。

ApplicationContextSpring 提供了该接口的多种实现 。在独立应用程序中,通常创建ClassPathXmlApplicationContext或的实例FileSystemXmlApplicationContext。虽然 XML 一直是定义配置元数据的传统格式,但您可以通过提供少量 XML 配置来声明性地启用对这些附加元数据格式的支持,从而指示容器使用 Java 注释或代码作为元数据格式。

在大多数应用场景中,不需要显式的用户代码来实例化一个或多个 Spring IoC 容器实例。例如,在 Web 应用程序场景中,应用程序文件中的简单八行(左右)样板 J2EE Web 描述符 XMLweb.xml通常就足够了(请参阅第 5.14.4 节,“ ApplicationContext Web 应用程序的便捷实例化”)。如果您使用的是SpringSource Tool Suite Eclipse 驱动的开发环境或Spring Roo,则只需点击几下鼠标或击键,即可轻松创建此样板配置。

下图是 Spring 如何工作的高级视图。您的应用程序类与配置元数据相结合,因此在ApplicationContext创建和初始化之后,您就有了一个完全配置且可执行的系统或应用程序。
在这里插入图片描述

一、新建maven项目

在这里插入图片描述

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
    </dependencies>

二、新建pojo

package com.zsm.pojo;

public class Hello {
    private String str;

    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }

    @Override
    public String toString() {
        return "Hello{" +
                "str='" + str + '\'' +
                '}';
    }
}

三、基于 XML 的配置元数据

<?xml version="1.0" encoding="UTF-8"?>
<beans  xmlns = "http://www.springframework.org/schema/beans"
        xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation = "http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd" >

    <!-- 使用spring来创建对象,在spring这些都称为bean-->
    <bean id="hello" class="com.zsm.pojo.Hello">
        <property name="str" value="Spring"/>
    </bean>
</beans>

该id属性是一个字符串,用于标识单个 bean 定义。
该class 属性定义 bean 的类型并使用完全限定的类名。
id 属性的值是指协作对象。
在这里插入图片描述

四、实例化容器

在这里插入图片描述

在Test/java路径下新建测试类MyTest.java

import com.zsm.pojo.Hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {
    public static void main(String[] args) {
        //获取spring的上下文对象!
        ApplicationContext context =new  ClassPathXmlApplicationContext("ApplicationContext.xml");
        //我们的对象现在都在spring中的管理了,我们要使用,直接去里面取出来就可以!
        Hello hello = (Hello) context.getBean("hello");
        System.out.println(hello.toString());
    }
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值