IOC注解开发与XML整合
区别:
xml:可以适用于任何场景,结构清晰,方便维护
注解:开发方便,快速。有些地方适用不了,这个类不是自己提供的(比如源码提供的类)
xml和注解整合开发,各取所长
xml使用于对bean进行管理,方便后期维护。注解是方便进行属性注入
package zcc.spring_day2.demo3; public class OrderDao { public void save() { System.out.println("OrderDao的save方法执行了......."); } }
package zcc.spring_day2.demo3; public class ProudctDao { public void save() { System.out.println("ProudctDao的save方法执行了......."); } }
package zcc.spring_day2.demo3; import javax.annotation.Resource; public class UserService { @Resource(name="orderDao") private OrderDao orderDao; @Resource(name="productDao") private ProudctDao productDao; /*public void setOrderDao(OrderDao orderDao) { this.orderDao = orderDao; } public void setProductDao(ProudctDao productDao) { this.productDao = productDao; }*/ public void save() { System.out.println("UserService的save方法执行了......."); orderDao.save(); productDao.save(); } }
在没有开启扫描的情况下,若要使用注解开发,需要在xml中开启<context:annotation-config/>
用xml方式管理bean
测试类代码如下
package zcc.spring_day2.demo3; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /* * XML和注解整合,XML管理类,用注解来完成属性注入 */ public class SpringDemo3 { @Test public void demo1() { // 创建spring的工厂来将xml中所有的bean实例化 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext2.xml"); UserService bean = (UserService) applicationContext.getBean("userService"); bean.save(); } }
运行结果如下