IOC容器创建对象及接口详解

  • 引言
  • 类的建立
  • 配置文件
  • IOC创建对象
  • 运行结果
  • 接口详解
    • (1)接口一`ClassPathXmlApplicationContext`
    • (2)接口二:`FileSystemXmlApplicationContext`

引言

使用Spring框架来创建对象,涉及到IOC容器的使用。主要的实现方法为IOC容器中提供的两个接口。BeanFactoryApplicationContext

其中,BeanFactory有很多实现类,ApplicationContext

BeanFactory的子接口,其常用实现类是org.springframework.context.support.FileSystemXmlApplicationContextorg.springframework.context.support.ClassXmlAplicationContext

Spring的配置信息通常采用XML配置文件来设置,因此,创建ApplicationContext实例时,应该提供XML配置文件作为参数。

类的建立

和正常的java类的创建形式是一样的,此处,先建立一个测试类,取名为User.java

package com.action.spring;public class User {public void add() {     System.out.println("Spring...");}
}

配置文件

Spring框架中,主要是通过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"><bean id="user" class="com.action.spring.User"></bean></beans>

其中,中的信息为Spring框架配置文件头信息,固定内容。

添加关联关系,<bean id="user" class="com.action.spring.User">其中,id为类的别名,class所指向的为类的地址。

IOC创建对象

创建一个类用于测试使用IOC容器的形式创建对象。

package testdemo;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;import com.action.spring.User;public class testSpring5 {@Testpublic void testAdd() {        ApplicationContext context =new FileSystemXmlApplicationContext("src/config/bean1.xml");User user = context.getBean("user",User.class);System.out.println(user);user.add();}}

创建实例之后,使用.getBean()方法进行调用,两个参数,一个是配置对象id,一个是对象类型

三个文件的项目位置关系如下图。

运行结果

结果分别为对象的路径和调用对象方法后打印的结果。

接口详解

在上述方法中,采用的是ApplicationContext接口来创建的实例。

下面详细介绍ApplicationContext的实际运用:

Spring使用IOC容器创建对象及ClassPathXmlApplicationContext与FileSystemXmlApplicationContext接口详解相关推荐

  1. Spring学习----IoC容器创建对象

    SpringIOC容器,是spring核心内容.功能:创建对象,处理对象的依赖关系 IOC容器创建对象: 创建对象, 有几种方式: 1) 调用无参数构造器 2) 带参数构造器 3) 工厂创建对象   ...

  2. Spring的IOC和DI(带例子,超级详解)

    1.什么是IOC?(Inversion Of Controll 控制反转) 控制反转是面向对象编程中的一种设计原则,可以用来降低计算机代码之间的耦合度,其中最常见的方式是依赖注入,还有一种方式是依赖查 ...

  3. 框架:简单实现Spring的IOC容器

    学习过Spring的同学都知道,Spring框架的核心就是IoC和AOP.Spring可以理解为一个工厂,负责对象的创建和对象间关系的维护.IoC即控制反转,简单点说就是原来的对象是在要使用之前通过在 ...

  4. java框架注入是创建对象吗_spring之IOC容器创建对象

    1.术语了解 1.1组件/框架设计 侵入式设计 引入了框架,对现有的类的结构有影响:即需要实现或继承某些特定类. 例如:Struts框架 非侵入式设计 引入了框架,对现有的类结构没有影响. 例如:Hi ...

  5. spring的IOC容器

    文章目录 1. IOC.IOC容器.Bean.DI 2. 核心概念小结 3,入门案例 3.1 IOC入门案例 3.1.1 入门案例思路分析 3.1.2 入门案例代码实现 步骤1:创建Maven项目 步 ...

  6. Spring 的IOC容器系列的设计与实现:BeanFactory 和 ApplicationContext

    在Spring IOC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本的功能,另一个是ApplicationContex ...

  7. SSM 整合 4:Spring IoC 容器基于的两个重要接口 BeanFactory 和 ApplicationContext

    文章目录 前言 一.BeanFactory 接口 1.1.加载 Spring 配置文件创建 BeanFactory 接口实例 1.2.开发中的运用以及使用说明 二.ApplicationContext ...

  8. [Spring 深度解析]第6章 Spring的IoC容器系列

    6. Spring的IoC容器系列 ​ IoC容器为开发者管理对象之间的依赖关系提供了很多便利和基础服务.有许多IoC容器供开发者选择,SpringFramework的IoC核心就是其中一个,它是开源 ...

  9. 【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext

    在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能,另一个是ApplicationContext ...

最新文章

  1. redis的过期策略和淘汰策略
  2. CHM格式的可以全文搜索的Spring3.2官方参考文档
  3. apache camel 相关配置_小白在 linux 系统部署apache、mysql、Laravel 环境学习笔记!
  4. CentOS6.4卸载自带的OpenJDK并安装jdk1.6.21
  5. 解开拒绝本地登录的“死结”
  6. linux如何查看所有的用户(user)、用户组(group)、密码(password/passwd)
  7. 拒修电脑后,妹子又约我学机器学习,好烦(甜)!
  8. sencha inspector(调试工具)
  9. VB.NET工作笔记004---查看电脑已经安装了哪些COM组件,可以用个OleViewer.zip
  10. 反向索引(Inverted Index)
  11. Ubuntu系统下环境变量那些事儿
  12. open表和closed表_什么是左外连接?左外连接在工作表查询中的应用
  13. 金士顿服务器内存条怎么看型号,【查看内存条参数】 内存条上的参数怎么看...
  14. 电脑文件备份到移动硬盘的方法
  15. NVIDIA主控CPU/GPU设置频率
  16. 社保缴费满15年就可以不缴了?6个很多人最关心的问题权威解答来了
  17. SAP WM上架策略为Fixed Bin的Storage Type如何以FIFO出库?
  18. Redis 安装部署教程
  19. SpringBoot第二十三篇:安全性之Spring Security
  20. java给Excel表格赋值_Java 实现 给Excel模板赋值(直接打开表格赋值或者用自定义了名称的单元格(一块区域)赋值)...

热门文章

  1. 操作系统--进程管理1--单个CPU情况
  2. JAVA 语言如何进行异常处理,关键字: throws,throw,try,catch,finally分别代表什么意义? 在try块中可以抛 出异常吗?...
  3. python str转dict
  4. 获取微信的access_tokey,处理json格式的数据
  5. JavaScript类数组对象参考
  6. Hibernate读书笔记---继承映射
  7. 利用反射判断初始化后的对象所有属性是否为空判断对象指定属性是否为空
  8. 小程序入门学习09--云开发02
  9. jq使用教程08_基于估值波动周期的择时策略
  10. idea中npm安装总结与node-sass依赖安装等常见问题避坑总结