- 先创建接口
package com.bjpowernode.service;
public interface SomeService {
void doSome();
}
- 再创建实现接口的类,并提供方法供检验
package com.bjpowernode.service.impl;
import com.bjpowernode.service.SomeService;
public class SomeServiceImpl implements SomeService {
@Override
public void doSome() {
System.out.println("执行了SomeServiceImpl的doSome()方法");
}
}
- 不用spring创建对象时
public class MyTest {
@Test
public void test01() {
SomeService service = new SomeServiceImpl();
service.doSome();
}
- 使用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();
}
}