谈谈什么是IOC

      spring会把对象控制权交给容器,容器创建了一个又一个的对象,通过DI呢,又确定了各个对象之间的关系。但是,spring是怎么把容器里的对象给到我们的呢?

1、容器在spring里面是如何存在的?

  spring的容器,我们一般称之为ioc容器,其实就是项目中的一个xml配置文件,通过配置这个xml,我们来控制各个对象之间的关系。 
   那么随便创建一个xml就可以当做容器吗?当然不是,一个标准的ioc容器,需要规定编码以及有很多的约束,也就是xml的头文件,下面我将一个头协议写好的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" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"> <bean id="people" class="com.spring.test.People"></bean> </beans>

  这样,我们一个ioc容器的配置文件就可以使用了,我们通常给这个配置文件起名applicationContext.xml。

<bean id="people" class="com.spring.test.People"></bean>
1
  这个标签是将一个People类型的对象注入到容器中,当然项目中首先要有这个People类。其中,id是给bean起的一个唯一标识,class后面跟着这个对象类型的全限定名称。

2、如何在程序中获取到容器呢?

  首先我们要搭建spring的环境。我们使用maven项目,在pom中配置spring的包。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.12.RELEASE</version>
</dependency>
 
  接下来我们新建一个主类,在主类中进行测试。获取ioc的代码如下:

import org.springframework.context.ApplicationContext;
import   org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class TestShiro {
    public static void main(String[] args) {
        ApplicationContext content = new ClassPathXmlApplicationContext("applicationContent.xml");
    }
}
 
  我们暂且把applicationContext.xml放到类的路径下。如果没有报错,则证明我们成功的获取了spring的ion容器。

3、获取到容器之后怎么拿到容器中的对象呢?

  容器获取之后,我们就可以获取容器中的对象了,代码如下:

People peo = (People) content.getBean("people");
1
  其中需要注意的是,getBean方法传参内容是bean标签中的唯一标识,也就是id的值;getBean方法返回的是Object类型,需要我们强行转换成我们需要得到的类。 
  到此为止,我们已经使用容器注入了一个对象,使用java获取到spring的容器,并从容器中拿到了一个对象了。
--------------------- 
作者:Nice118 
版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值