目录
一、基于XML的自动装配
spring可以完成自动化的注入,自动化注入又称自动装配,可以根据名字进行自动装配,也可以根据类型进行自动装配。
1.1、根据名字实现自动装配
测试代码:
public class OrderDao {
private static final Logger logger = LoggerFactory.getLogger(UserDao.class);
public void insert(){
logger.info("订单正在生成...");
}
}
public class OrderService {
private OrderDao orderDao;
public void setOrderDao(OrderDao orderDao) {
this.orderDao = orderDao;
}
/**
* 生产订单的业务方法
*/
public void save(){
orderDao.insert();
}
}
spring配置文件:
<?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="orderBean" class="com.cjc.spring6.service.OrderService" autowire="byName"></bean>
<!--这里的id就是bean的名称,这个id是set方法去掉set剩余部分-->
<bean id="orderDao" class="com.cjc.spring6.dao.OrderDao"></bean>
</beans>
测试代码:
@Test
public void getAuto(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-auto.xml");
OrderService orderBean = applicationContext.getBean("orderBean", OrderService.class);
orderBean.save();
}
测试结果:
1.2、基于类型自动装配
<?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">
<!--根据类型自动装配-->
<!--自动装配是基于set方法-->
<bean class="com.cjc.spring6.dao.OrderDao"></bean>
<bean id="auto2" class="com.cjc.spring6.service.OrderService" autowire="byType"/>
</beans>
@Test
public void getAuto2(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-auto2.xml");
OrderService orderBean = applicationContext.getBean("auto2", OrderService.class);
orderBean.save();
}
测试结果: