spring创建对象的步骤以及与正常new对象的对比

  1. 先创建接口
package com.bjpowernode.service;

public interface SomeService {

    void doSome();
}

  1. 再创建实现接口的类,并提供方法供检验
package com.bjpowernode.service.impl;

import com.bjpowernode.service.SomeService;

public class SomeServiceImpl implements SomeService {
    @Override
    public void doSome() {
        System.out.println("执行了SomeServiceImpl的doSome()方法");

    }
}

  1. 不用spring创建对象时
public class MyTest {
    @Test
    public void test01() {
        SomeService service = new SomeServiceImpl();
        service.doSome();
    }
  1. 使用spring时创建对象

4.1 创bean,就是告诉spring要创建某个类的对象

<?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">

    <!--告诉spring创建对象
        声明bean,就是告诉spring要创建某个类的对象
        id:对象的自定义名称,是唯一值。spring通过这个名称找到对象
        class:类的全限定名称(不能是接口,因为spring是反射机制创建对象。必须使用类)

        spring就完成 SomeService someService = new SomeServiceImpl();
        spring 是把创建好的对象放在map中,spring框架有一个map存放对象的。
            springMap.put(id的值,对象);
            例如:
            springMap.put("SomeService",new SomeServiceImpl());

            一个bean声明一个对象
    -->


    <bean id="someService" class="com.bjpowernode.service.impl.SomeServiceImpl"/>

    <!--id是给class起的名字-->


</beans>

4.2 spring实现对象的创建

package com.bjpowernode;

import com.bjpowernode.service.SomeService;
import com.bjpowernode.service.impl.SomeServiceImpl;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {
    @Test
    public void test01() {
        SomeService service = new SomeServiceImpl();
        service.doSome();
    }
    @Test
    public void test02(){
        //使用spring容器创建的对象
        //1指定spring配置文件的名称
        String config = "beans.xml";
        //2创建表示spring容器的对象,ApplicationContext(代表spring 通过他的对象就能用到里面的对象)
        //ApplicationContext就是表示Spring容器,通过容器获取对象了
        //ClassPathXmlApplicationContext:表示从类路径中加载spring的配置文件
        ApplicationContext ac = new ClassPathXmlApplicationContext(config);

        //从容器中获取某个对象,你要调用对象的方法
        //getBean("配置文件中的bean的id值")
        SomeService service = (SomeService)ac.getBean("someService");


        //使用spring创建好的对象
        service.doSome();
    }
}

上一篇:Android Hybrid (混合页面)自动化测试


下一篇:匿名内部类和局部内部类只能访问final变量的原因