Spring IOC容器

(一)IOC级Bean容器

 面向接口编程

结构设计中,分清层次及调用关系,每层只向外(上层)提供一组功能接口,各层间只依赖接口而非实现类

接口实现的变动不影响各层间的调用

“面向接口编程”的“接口”用于隐藏具体实现和实现多态性的组件

什么是IOC?

------------控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护

------------DI(依赖注入)是其一种实现方式

------------目的:创建对象并且组装对象之间的关系

Spring的Bean配置

接口在Spring中的配置方式

XML配置方式:

BeanFactory.java

package com.stonegeek.service;

/**
 * Created by StoneGeek on 2019/3/22.
 */
public interface BeanFactory {
    public void Beantest();
}

BeanFactoryImpl.java

package com.stonegeek.service.impl;

import com.stonegeek.service.BeanFactory;

/**
 * Created by StoneGeek on 2019/3/22.
 */
public class BeanFactroyImpl implements BeanFactory {
    @Override
    public void Beantest() {
        System.out.println("----------------This is a 传统的XML配置的bean!-------------------");
    }
}

applicationContext.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:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    ">
    <bean id="beanFactroy" class="com.stonegeek.service.impl.BeanFactroyImpl" />

</beans>

TestBean.java

package com.stonegeek;

import com.stonegeek.service.BeanFactory;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by StoneGeekon 2019/3/22.
 */
public class TestBean {
    @Test
    public void test(){
        ApplicationContext ctx= new ClassPathXmlApplicationContext("applicationContext.xml");
        BeanFactory beanFactory=(BeanFactory) ctx.getBean("beanFactroy");
        beanFactory.Beantest(); //----------------This is a 传统的XML配置的bean!-------------------
    }
}

单元测试:

------------下载junit-*.jar并引入工程

------------创建UnitTestBase类 ,完成对Spring配置文件的加载,销毁

------------所有的单元测试类都继承自UnitTestBase,通过它的getBean方法获取想要得到的对象

------------子类(具体执行单元测试的类)加注解:@RunWith(BlockJUnit4ClassRunner.class)

------------单元测试方法加注解:@Test

------------右键选择要执行的单元测试方法执行或者执行一个类的全部单元测试方法

Bean容器初始化:

------------基础:两个包

 一、org.springframework.beans     二、org.springframework.context

  BeanFactory提供配置结构和基本功能,加载并且初始化Bean

  ApplicationContext保存了Bean对象并在Spring中被广泛使用

------------方式,ApplicationContext

本地文件 

ClassPath

Web应用中依赖servlet或者Listener

Spring 注入:

------------Spring注入是指在启动Spring容器加载Bean容器的时候,完成对变量的赋值行为

------------常用的两种注入方式:

设值注入

                -<property name=“ ” ></property>

构造注入

                - <constructor-arg index=””></ constructor-arg>

                     

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值