依赖注入( Dependency Injection ,简称 DI) 与控制反转 (IoC) 的含义相同,只不过这两个称呼是从两个角度描述的同一个概念,具体如下:
依赖注入可以有效的解耦合。
有两种实现的方法,一种是配置xml文件来实现,另一种是通过参数实现,来,找个简单的例子让咱们上手试一试。(Intellij IDEA 2020)
首先,咱们先配置一下相关的jar包(pom.xml)
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.5</version>
</dependency>
创建一个Pet接口,存放方法say()
public interface Pet {
void say();
}
创建一个Person类
public class Person {
private String name;
private Pet pet;
public void setName(String name) {
this.name = name;
}
public void setPet(Pet pet) {
this.pet = pet;
}
public void keepPet() {
System.out.println(name + " 比" + pet + " 可爱,因为它会说");
pet.say();
}
}
创建一个Dog类,继承Pet接口
public class Dog implements Pet{
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
public void say(){
System.out.println("WangWang");
}
}
重点来了,配置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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dog" class="Ex_04.Dog">
<property name="name" value="哈士奇"></property>
</bean>
<bean id="person" class="Ex_04.Person">
<property name="name" value="拉布拉多"></property>
<property name="pet" ref="dog"></property>
</bean>
</beans>
基本类已创建完毕,让我们来创建一个实现类
public class Text_04 {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Person person = (Person) applicationContext.getBean("person");
person.keepPet();
}
}
输出结果为:拉布拉多 比哈士奇 可爱,因为它会说WangWang
以上就就是以xml文件实现SpringIOC框架,如有错误,麻烦指出,感谢耐心到现在的朋友 : ) ---By 不断努力的Yang
手机扫一扫
移动阅读更方便
你可能感兴趣的文章