SpringFramework核心技术一(IOC:使用ICO容器)

2023-11-05

使用容器

这ApplicationContext是高级工厂的接口,能够维护不同bean及其依赖项的注册表。使用该方法T getBean(String name, Class requiredType)可以检索bean的实例。


一、

在ApplicationContext可以读取bean定义并访问它们,如下所示:

1.1 怎么使用容器

首先来看一下容器:
这里写图片描述

1.2

有很多同学一上来就是搞一个New,可是这是一个ApplicationContext接口啊。

//接口是不能直接new着用的,这个是重写。
ApplicationContext applicationContext = new ApplicationContext(){...}

1.3

下面这样用才是对的:ClassPathXmlApplicationContext是类

/**
 * @author:wangdong
 * @description:怎么使用容器
 */
public class Test {

    public static void main(String[] args) {

        // create and configure beans
        //可以从XML文件中读取需要配置Bean并且加载进容器中
        ApplicationContext context = new ClassPathXmlApplicationContext("services.xml", "daos.xml");
    }

看一下ClassPathXmlApplicationContext类
这里写图片描述

二、下面我们来用一下

package org.springframework.test;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.ApplicationContext;
import org.springframework.context.MessageSourceResolvable;
import org.springframework.context.NoSuchMessageException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.context.support.GenericGroovyApplicationContext;
import org.springframework.core.ResolvableType;
import org.springframework.core.env.Environment;
import org.springframework.core.io.Resource;

import java.io.IOException;
import java.lang.annotation.Annotation;
import java.util.Locale;
import java.util.Map;

/**
 * @author:wangdong
 * @description:怎么使用容器
 */
public class Test {

    public static void main(String[] args) {

        // create and configure beans
        ApplicationContext context1 = new ClassPathXmlApplicationContext("services.xml", "daos.xml");

        // retrieve configured instance(检索配置实例Bean)
        //如果PetStoreService已经创建,并且在上面的.xml文件中已经配置
        PetStoreService service = context1.getBean("petStore", PetStoreService.class);

        //GenericApplicationContext和ClassPathXmlApplicationContext类似
        //只不过这里使用的是.groovy后缀文件
        //使用Groovy配置,bootstrapping看起来非常相似,只是一个不同的上下文实现类,它可以感知Groovy(但也理解XML bean定义):
        ApplicationContext context2 = new GenericGroovyApplicationContext("services.groovy", "daos.groovy");

        //最灵活的变体是GenericApplicationContext与.groovy.xml结合使用
        GenericApplicationContext context3 = new GenericApplicationContext();
        //用于.xml后缀的文件
        new XmlBeanDefinitionReader(context3).loadBeanDefinitions("services.xml", "daos.xml");
        //用于.groovy后缀的文件
        new GroovyBeanDefinitionReader(context3).loadBeanDefinitions("services.groovy", "daos.groovy");

    }
}

可以使用它getBean来检索bean的实例。该ApplicationContext 接口还有其他一些检索bean的方法,但理想情况下,应用程序代码不应该使用它们。事实上,你的应用程序代码根本不应该调用该 getBean()方法,因此完全不依赖于Spring API。例如,Spring与Web框架的集成为各种Web框架组件(如控制器和JSF托管的bean)提供了依赖注入,允许您通过元数据(例如自动装配注释)声明对特定Bean的依赖关系。
未完待续~~~持续更新

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringFramework核心技术一(IOC:使用ICO容器) 的相关文章

随机推荐

  • 大数据学习之Zookeeper——01Zookeeper简单介绍

    转载 https www cnblogs com sunddenly p 4033574 html 一 分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术 分布式协调技术 那么什么是分布式协调技术 那么我来告诉大家 其
  • ssm项目(商城管理系统)-- 完整

    搭建SSM项目 1 新建Maven工程 添加Web模板 2 配置 pom xml文件 2 1 集中定义全局变量 依赖版本号 方便管理版本 2 2 依赖 2 3 插件 2 4 识别配置文件 3 添加配置文件 3 1 数据库连接信息jdbc p
  • Visual Studio注释快捷键

    VS注释快捷键操作 注释 先CTRL K 然后CTRL C 取消注释 先CTRL K 然后CTRL U
  • 我的世界启动器怎么更改java_我的世界启动器Java路径怎么设置?

    本文是历趣手游专区小编为诸位我的世界PC端玩家带来的我的世界启动器Java路径如何设置攻略 希望诸位我的世界玩家会喜欢 我的世界java路径设置攻略 1 首先我们要确保电脑中已经下载并安装好了最新的java 如果没有的话 我们直接在网上搜索
  • 计算机设备问题代码43,win10系统提示由于该设备有问题windows已将其停止(代码43)的修复方案...

    有关win10系统提示由于该设备有问题windows已将其停止 代码43 的操作方法想必大家有所耳闻 但是能够对win10系统提示由于该设备有问题windows已将其停止 代码43 进行实际操作的人却不多 其实解决win10系统提示由于该设
  • jmeter及jdk的环境变量配置

    jmeter是apache公司基于java开发的一款开源压力测试工具 其内部原理都是源于java的运行 并支持多种外部插件用于接口及性能测试 最主要的还是开源免费 在安装jmeter前必须配置jdk环境 jdk下载地址 https www
  • vsCode中conda activate失败的解决办法

    首先贴上报错信息 无法加载文件 C Users 13623 Documents WindowsPowerShell profile ps1 因为在此系统上禁止运行脚本 CommandNotFoundError Your shell has
  • git网址访问加载超时速度慢

    git来重置密码 再点击git网站无法打开怎么解决 首先我们应该要明白gitl本身访问就比较慢 所以我们需要登录时候需要借用github但有时候会出现访问速度特别慢的情况因此咱们需要修改配置 借用最新的ip地址来自增强访问github网站的
  • Android系统中数据库应用

    1 设置策略中的数据库 frameworks base packages SettingsProvider src com android providers settings DatabaseHelper java 2 sqlite3操作
  • 【Firefly入门教程】firefly、MySQL和Memcached共同使用

    coding utf8 firefly MySQL和Memcached共同使用 from firefly dbentrust dbpool import dbpool from firefly dbentrust memclient imp
  • 1116:打印零与奇偶数

    题目描述 假设有这么一个类 class ZeroEvenOdd public ZeroEvenOdd int n 构造函数 public void zero printNumber 仅打印出 0 public void even print
  • 什么是文件服务器

    文件服务器是一种器件 它的功能就是向服务器提供文件 在计算机局域网中 以文件数据共享为目标 需要将供多台计算机共享的文件存放于一台计算机中 这台计算机就被称为文件服务器 文件服务器具有分时系统管理的全部功能 能够对全网统一管理 能够提供网络
  • 自己如何重装系统_重装系统方法汇总

    系统崩溃或者蓝屏后 只能重装系统才能解决问题 电脑安装系统方法很多 除费时麻烦现在很少应用的完全安装方法外 常用克隆安装 其方法又分为 硬盘安装 适用于进行过系统备份的熟练用户 U盘安装 适用于有一定电脑操作能力的基础用户 和光盘安装 适用
  • HuggingFace学习3:加载预训练模型完成机器翻译(中译英)任务

    加载模型页面为 https huggingface co liam168 trans opus mt zh en 文章目录 整理文件 跑通程序 测试预训练模型 拆解Pipeline 逐步进行翻译任务 整理文件 首先下载模型所需的全部文件 h
  • 手动搭建python环境

    手动安装python3 9 1 wget https www python org ftp python 3 9 1 Python 3 9 1 tgz tar xf Python 3 9 1 tgz cd Python 3 9 1 sudo
  • 试题 算法提高 拦截导弹

    资源限制 内存限制 256 0MB C C 时间限制 1 0s Java时间限制 3 0s Python时间限制 5 0s 问题描述 某国为了防御敌国的导弹袭击 发展出一种导弹拦截系统 但是这种导弹拦截系统有一个缺陷 虽然它的第一发炮弹能够
  • Docker入门之安装Tomcat

    目录 1 Docker 中安装 Tomcat 1 1 查看 Docker Hub 上的 Tomcat 镜像 1 2 从 Docker Hub 上拉取 Tomcat 镜像 1 3 查看本地镜像列表中拉取的 Tomcat 镜像 2 创建容器并运
  • EM算法及其改进算法

    EM算法及其改进算法 搬运 EM算法笔记一 讲了基础的EM算法 EM算法笔记二 讲述了EM的改进算法 讲得很清晰 EM算法笔记三 不同应用场景的阐述
  • JavaScript实现跳跃游戏的贪婪方法的算法

    JavaScript实现跳跃游戏的贪婪方法的算法 跳跃游戏是一种常见的游戏类型 其中玩家需要控制角色进行跳跃操作以避开障碍物并达到目标 在这篇文章中 我们将使用JavaScript实现跳跃游戏的贪婪算法 该算法能够根据当前情况做出最优的跳跃
  • SpringFramework核心技术一(IOC:使用ICO容器)

    使用容器 这ApplicationContext是高级工厂的接口 能够维护不同bean及其依赖项的注册表 使用该方法T getBean String name Class requiredType 可以检索bean的实例 一 在Applic