依赖注入的实现案例

DI是从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者注入了依赖的实例,这就是Spring的依赖注入。

接下来一个实践演练下:

在com.iteima.ioc包下创建接口UserDao

package com.itheima.ioc;

public interface UserDao {
	public void say();
}

 在包下创建UserDao接口的实现类UserDaoImpl

package com.itheima.ioc;

public class UserDaoImpl implements UserDao {

	@Override
	public void say() {
		System.out.println("UserDao say Hello World!");

	}

}

 在包下创建UserService接口:

package com.itheima.ioc;

public interface UserService {
	public void say();
}

在包下创建UserService的实现类UserServiceImpl类:

package com.itheima.ioc;

public class UserServiceImpl implements UserService{
	private UserDao userDao;
	
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	@Override
	public void say() {
		userDao.say();
		System.out.println("UserService say Hello World");
		
	}

}

创建配置文件,取名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-4.3.xsd">
    <bean id="userDao" class="com.itheima.ioc.UserDaoImpl">      
    </bean>
    <bean id="userService" class="com.itheima.ioc.UserServiceImpl">   
    	<property name="userDao" ref="userDao"></property>   
    </bean>
</beans>

 创建测试类TestDI

package com.itheima.ioc;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestDI {

	public static void main(String[] args) {
		ApplicationContext applicationContext = 
				new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService userService = (UserService) applicationContext.getBean("userService");
		userService.say();

	}

}

运行测试类后的效果如图:

欢迎有疑问的朋友提问和大佬评论

发布了38 篇原创文章 · 获赞 9 · 访问量 1435

猜你喜欢

转载自blog.csdn.net/qq_42023080/article/details/105007675