`

spring自动装配

 
阅读更多

1.byName

<?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-2.5.xsd">

	<!-- 由于是按照name自动装配的,所以属性id的值(userDAO)要和UserService中成员变量userDAO一致 -->
	<bean id="userDAO" class="com.test.dao.impl.UserDAOImpl">
		<property name="daoId" value="1"></property>
	</bean>

	<bean id="userService" class="com.test.service.UserService" autowire="byName"></bean>

</beans>

 

2.byType

<?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-2.5.xsd">

	<!-- 由于是按照type自动装配的,所以属性id的值(userDAO2)要和UserService中成员变量userDAO可以不一致 -->
	<bean id="userDAO2" class="com.test.dao.impl.UserDAOImpl">
		<property name="daoId" value="2"></property>
	</bean>
	
	<bean id="userService" class="com.test.service.UserService" autowire="byType"></bean>
	
</beans>

 

3.default

<?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-2.5.xsd"
           default-autowire="byType">

	<bean id="userDAO3" class="com.test.dao.impl.UserDAOImpl">
		<property name="daoId" value="3"></property>
	</bean>
	
	<!-- 如果这里autowire为default(本来默认就是default),就会用到beans里面的default-autowire配置 -->
	<bean id="userService" class="com.test.service.UserService"></bean>
	
</beans>

 

UserDAOImpl.java

package com.test.dao.impl;

import com.test.dao.UserDAO;
import com.test.model.User;

public class UserDAOImpl implements UserDAO {

	private int daoId;

	public int getDaoId() {
		return daoId;
	}

	public void setDaoId(int daoId) {
		this.daoId = daoId;
	}

	public void save(User user) {
		System.out.println("user saved!");
	}
}

 

UserService.java

package com.test.service;

import com.test.dao.UserDAO;
import com.test.model.User;

public class UserService {
	private UserDAO userDAO;

	public UserDAO getUserDAO() {
		return userDAO;
	}

	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}

	public void add(User user) {
		userDAO.save(user);
	}

}

 

UserServiceTest.java

package com.test.service;

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

import com.test.dao.impl.UserDAOImpl;

public class UserServiceTest {

	@Test
	public void testAdd() throws Exception {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
		UserService service = (UserService) applicationContext.getBean("userService");
		UserDAOImpl userDAOImpl = (UserDAOImpl) service.getUserDAO();
		System.out.println("daoId = " + userDAOImpl.getDaoId());
	}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics