<?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方法的,构造方法必须要提供一个空参的--> <!-- 根据类型自动装配的时候,在有效的配置文件中,某种类型的实例只能有一个,如果引入了多个配置文件(xml)时,导致多个同类型文件存在就会导致报错--> <bean id="userDao" class="com.powernode.spring6.dao.UserDao"/> <bean id="vipDao" class="com.powernode.spring6.dao.VipDao"/> <bean id="customerService" class="com.powernode.spring6.service.CustomerService" autowire="byType"> <!-- <constructor-arg index="0" ref="userDao"></constructor-arg>--> <!-- <constructor-arg index="1" ref="vipDao"></constructor-arg>--> </bean> <!-- 根据名字自动装配--> <!-- 自动装配也是基于SET方法实现的--> <!-- 根据名字自动装配时,被注入的Bean的名字不能乱写,必须是SET方法后的名字去掉SET改为首部小写--> <bean id="orderService" class="com.powernode.spring6.service.OrderService" autowire="byName"> </bean> <bean id="orderDao" class="com.powernode.spring6.dao.OrderDao"></bean> <!-- ID一般也叫做Bean的名称,ID不能随便写了--> <!-- autoWire通过名字装配的原理是SET方法的名字把首字母变小写,故而不要随便写--> <!-- <bean id="OrderDao" class="com.powernode.spring6.dao.OrderDao"></bean>--> <!-- <bean id="OrderService" class="com.powernode.spring6.service.OrderService">--> <!-- <property name="orderDao" ref="OrderDao"/>--> <!-- </bean>--> </beans>
<?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方法的,构造方法必须要提供一个空参的-->
<!-- 根据类型自动装配的时候,在有效的配置文件中,某种类型的实例只能有一个,如果引入了多个配置文件(xml)时,导致多个同类型文件存在就会导致报错-->
<bean id="userDao" class="com.powernode.spring6.dao.UserDao"/>
<bean id="vipDao" class="com.powernode.spring6.dao.VipDao"/>
<bean id="customerService" class="com.powernode.spring6.service.CustomerService" autowire="byType">
<!-- <constructor-arg index="0" ref="userDao"></constructor-arg>-->
<!-- <constructor-arg index="1" ref="vipDao"></constructor-arg>-->
</bean>
<!-- 根据名字自动装配-->
<!-- 自动装配也是基于SET方法实现的-->
<!-- 根据名字自动装配时,被注入的Bean的名字不能乱写,必须是SET方法后的名字去掉SET改为首部小写-->
<bean id="orderService" class="com.powernode.spring6.service.OrderService" autowire="byName">
</bean>
<bean id="orderDao" class="com.powernode.spring6.dao.OrderDao"></bean>
<!-- ID一般也叫做Bean的名称,ID不能随便写了-->
<!-- autoWire通过名字装配的原理是SET方法的名字把首字母变小写,故而不要随便写-->
<!-- <bean id="OrderDao" class="com.powernode.spring6.dao.OrderDao"></bean>-->
<!-- <bean id="OrderService" class="com.powernode.spring6.service.OrderService">-->
<!-- <property name="orderDao" ref="OrderDao"/>-->
<!-- </bean>-->
</beans>
package com.powernode.spring6.dao; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class UserDao implements Dao { private static final Logger logger = LoggerFactory.getLogger(UserDao.class); public void insert() { System.out.println("数据库正在保存用户信息"); //使用Log4j2日志框架 logger.info("数据库正在保存用户信息"); } }
package com.powernode.spring6.dao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class UserDao implements Dao
{
private static final Logger logger = LoggerFactory.getLogger(UserDao.class);
public void insert()
{
System.out.println("数据库正在保存用户信息");
//使用Log4j2日志框架
logger.info("数据库正在保存用户信息");
}
}
package com.powernode.spring6.dao; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class VipDao implements Dao { private static final Logger logger = LoggerFactory.getLogger(UserDao.class); public void insert() { logger.info("正在保存VIP信息"); } }
package com.powernode.spring6.dao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class VipDao implements Dao
{
private static final Logger logger = LoggerFactory.getLogger(UserDao.class);
public void insert()
{
logger.info("正在保存VIP信息");
}
}
@Test public void TestAutoWire() { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring-autoWire.xml"); OrderService orderService = applicationContext.getBean("orderService", OrderService.class); orderService.generate(); CustomerService customerService = applicationContext.getBean("customerService", CustomerService.class); customerService.save(); }
@Test
public void TestAutoWire()
{
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring-autoWire.xml");
OrderService orderService = applicationContext.getBean("orderService", OrderService.class);
orderService.generate();
CustomerService customerService = applicationContext.getBean("customerService", CustomerService.class);
customerService.save();
}