一、通过xml配置
pom.xml:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
public interface Fly {
public void fly();
}
public class Plane implements Fly {
@Override
public void fly() {
System.out.println("通过飞机飞");
}
}
测试类:
public class TestPlane {
@Test
public void test(){
//1 加载配置,创建对象工厂
ApplicationContext factory= new ClassPathXmlApplicationContext("spring-config.xml");
//2 从工厂中获取对象
Plane f=factory.getBean(Plane.class);
f.fly();
}
}
二、注解配置
spring-config.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.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--组件扫描,扫描含有注解的类-->
<context:component-scan base-package="com.wance"/>
</beans>
public interface Fly {
public void fly();
}
@Component("f1") //没有name的话,默认是类名首字母小写
public class Plane implements Fly {
@Override
public void fly() {
System.out.println("通过飞机飞");
}
}
测试类:
@Test
public void test2() {
//1 加载配置,创建对象工厂
ApplicationContext factory = new ClassPathXmlApplicationContext("spring-config.xml");
//2 从工厂中获取对象
Plane f = factory.getBean( Plane.class);
f.fly();
}
用spring测试框架简化操作
如果有多个实现类,要用@Qualifier指明调用哪个实现类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-config.xml")
public class TestPlane {
@Autowired
private Fly fly;
@Test
public void test3(){
fly.fly();
}
}