(五)Spring教程——Spring IoC容器(上)

        在Spring框架中,Bean的实例化和组装都是IoC容器配置元数据完成的。Spring框架提供的容器主要是基于BeanFactory和ApplicationContext两个接口,一种是实现BeanFactory接口的简单容器,另一种是实现ApplicationContext接口的高级容器。

        BeanFactory是比较传统的IoC实现方式,容器内的对象主动使用容器所提供的API来查找自己所依赖的组件。这种方式可以降低对象间的耦合度,同时也增加了对象对容器API的依赖。

        Spring框架可以通过名称、类型和注解这3种方式在BeanFactory接口种进行依赖查找。

        在pom.xml中添加springframework的引用

      <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-context</artifactId>

            <version>4.0.0.RELEASE</version>

        </dependency>

        点击右侧的刷新按钮,下载添加的依赖

        在main/resouce文件夹中添加test.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 https://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="test" class="com.example.servlet001.bean.User">

        <property name="userId" value="1" />

        <property name="userName" value="用户1" />

</bean>

</beans>

        在com.example.servlet001包中添加名字为bean的软件包,然后在该包中添加User类,User类的内容如下

package com.example.servlet001.bean;



public class User {

    public String getUserName() {

        return userName;

    }



    public void setUserName(String userName) {

        this.userName = userName;

    }



    public String getUserId() {

        return userId;

    }



    public void setUserId(String userId) {

        this.userId = userId;

    }



    String userName;

    String userId;



    @Override

    public String toString() {

        return "User{" +

                "userName='" + userName + '\'' +

                ", userId='" + userId + '\'' +

                '}';

    }

}

        添加Demo1.java类测试使用配置的加载User类

package com.example.servlet001;



import com.example.servlet001.bean.User;

import org.springframework.beans.factory.BeanFactory;

import org.springframework.beans.factory.xml.XmlBeanFactory;

import org.springframework.core.io.ClassPathResource;



public class Demo1 {

    public static void main(String[] args) {

        BeanFactory factory=new XmlBeanFactory(new ClassPathResource("test.xml"));

        User user=(User)factory.getBean("test");

        System.out.println(user);

    }

}

        运行该测试类后的输出结果为

相关推荐

  1. spring概念 及 SpringIoc 、DI

    2024-05-16 04:56:04       45 阅读
  2. Spring Boot更换Spring fox为Springdoc

    2024-05-16 04:56:04       49 阅读
  3. SpringIOC容器Bean对象的实例化模拟

    2024-05-16 04:56:04       41 阅读
  4. 昇腾npu构建modelbox webUI开发容器教程

    2024-05-16 04:56:04       73 阅读
  5. Spring容器

    2024-05-16 04:56:04       59 阅读
  6. Spring源码笔记之SpringIOC--(3)什么是BeanFactory?

    2024-05-16 04:56:04       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-16 04:56:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-16 04:56:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-16 04:56:04       82 阅读
  4. Python语言-面向对象

    2024-05-16 04:56:04       91 阅读

热门阅读

  1. [力扣题解]122. 买卖股票的最佳时机 II

    2024-05-16 04:56:04       37 阅读
  2. python.有关素数的合集

    2024-05-16 04:56:04       34 阅读
  3. c语言之文件打开模式

    2024-05-16 04:56:04       36 阅读
  4. git 命令之 - revert

    2024-05-16 04:56:04       113 阅读
  5. Rust中的链式调用方法

    2024-05-16 04:56:04       110 阅读
  6. ANSYS Maxwell16 引导

    2024-05-16 04:56:04       28 阅读
  7. Django信号与扩展:深入理解与实践

    2024-05-16 04:56:04       33 阅读
  8. Golang面向对象编程

    2024-05-16 04:56:04       25 阅读