配置文件ApplicationContext.xml要放在src下,其作用是:将指定的类配置给Spring,让Spring创建其对象的实例。
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"> <!-- 将指定的类配置给Spring,让Spring创建其对象的实例 --> <bean id="userDao" class="com.yang.ioc.UserDaoImpl"></bean> <bean id="userService" class="com.yang.ioc.UserServiceImpl"> <!-- propert用于调用bean实例中的setUserDao()完成属性赋值,从而实现依赖注入 --> <property name="userDao" ref="userDao"></property> </bean> </beans>
样例一:
UserDao.java
public interface UserDao { public void say(); }
UserDaoImpl .java
public class UserDaoImpl implements UserDao { public void say() { System.out.println("Hello"); } }
TestIoc.java
public class TestIoc { /** * 测试类 */ public static void main(String[] args) { //1.初始化spring容器,加载配置文件 ApplicationContext applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml"); //2.通过容器获取userDao实例 UserDao userDao= (UserDao) applicationContext.getBean("userDao"); //3.通过实例中的say()方法 userDao.say(); } }
样例二:
UserService.java
public interface UserService { public void say(); }
UserServiceImpl.java
public class UserServiceImpl implements UserService{ //声明UserDao属性 private UserDao userDao; //添加UserDao属性的setter方法,用于实现依赖注入 public void setUserDao(UserDao userDao){ this.userDao=userDao; } //实现接口中的方法 public void say(){ this.userDao.say(); System.out.println("UserService hello"); } }
TestDi.java
public class TestDi { /** * 测试类 */ public static void main(String[] args) { //1.初始化spring容器,加载配置文件 ApplicationContext applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml"); //2.通过容器获取UserService实例 UserService userService= (UserService) applicationContext.getBean("userService"); //3.通过实例中的say()方法 userService.say(); } }