NO.4 Spring IOC 开发步骤

来源:互联网 发布:图像分类算法综述 编辑:程序博客网 时间:2024/06/05 06:43

NO.4 Spring IOC 开发步骤

一.搭建Spring开发环境

(1)在pom.xml中引入所需的jar包
log4j,springframework

<dependencies>    <dependency>     <groupId>junit</groupId>    <artifactId>junit</artifactId>        <version>4.12</version>     </dependency>    <dependency>    <groupId>log4j</groupId>    <artifactId>log4j</artifactId>    <version>1.2.17</version>    </dependency>    <dependency>    <groupId>commons-logging</groupId>    <artifactId>commons-logging</artifactId>    <version>1.2</version>    </dependency>    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context</artifactId>        <version>4.3.10.RELEASE</version>    </dependency>  </dependencies>

(2)配置文件(应用上下文)
在resource下建一个包spring,写一个xml配置文件,命名为applicationContext.xml。
像我们之前所谈到的Web,DataAccess等java类,对于Spring来说,没有任何区别,统称为JavaBean,针对于IOC容器来说,也都是JavaBean,就像之前我们所建立的水果工厂,apple,orange都属于水果一样,现在将这些水果,统统以bean的形式放到IOC容器中。
这里,我们需要重复提出IOC(控制反转),之前是自己生产,现在有一个工厂,控制着bean的生产,控制的掌控者发生了反转。现在则是将控制权交给IOC容器,通过bean标签将JavaBean(所有Java类的统称)配置到IOC容器中。

bean标签两个重要的属性:
1.class 引用JavaBean的全类名
2.id 为定义一个id,此ID不能在IOC容器中重复,若重复则会报错,通常首字母小写
这样,我们就将这个Apple类初始化到了IOC容器中

<?xml version="1.0" encoding="UTF-8"?><!-- xmlns: xml name space xml命名空间xmlns与xsd文件成对出现xsd文件:限制标签的配置web.xml中是dtd文件控制标签配置Gson 一种数据格式,数据交互方式,数据的载体在Gson之前,可通过xml承载数据,但xml解析较麻烦,之后就不再使用了,现在xml多做为配置文件使用--><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.xsd               http://www.springframework.org/schema/context               http://www.springframework.org/schema/context/spring-context.xsd ">    <bean id="apple" class="com.xt.spring.ioc.ore.Apple" init-method="appleInit" destroy-method="appleDestroy" ></bean></beans>

初始化之后,就可以从这个工厂中获取这个对象了。

首先在java类中需要先获得这个工厂,再获取所需要的对象。
二.写一个测试类
ApplicationContext接口的两个可创建对象的实现类ClassPathXmlApplicationContext,FileSystemXmlApplicationContext,前者是相对路径(加载xml文件的路径相对于ClassPath,将resource当做绝对目录),后者是绝对路径(从本地的根目录开始,需要从某个盘开始)。
Apple实体bean中没有构造方法,工厂根据图纸,通过反射创建对象。

package com.xt.spring.ioc.test;import org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.xt.spring.ioc.ore.Apple;public class IOCTest {    //容器中的一个接口ApplicationContext,spring整个系统都是以这个接口开始的    private ApplicationContext ioc0;    @Before    public void iocInit(){        ioc0 = new ClassPathXmlApplicationContext("spring/applicationContext.xml");    }    @Test    public void testIoc(){        //IOC容器通过JavaBean的id来获取创建的JavaBean对象        //getBean获得的是object,可强转,也可把图纸给工厂        Apple a0 = ioc0.getBean("apple",Apple.class);        a0.eat();    }}

以上就是Spring IOC 简单的开发举例。

原创粉丝点击