spring引见(set和构造器注入)

spring介绍(set和构造器注入)

1.实体类

User.java

package com.test.model;

public class User {
	private String username;
	private String password;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
}

 

2.数据访问对象(dao-data access object)

UserDAO.java

package com.test.dao;

import com.test.model.User;

public interface UserDAO {
	public void save(User user);
}

 

3.实现dao层类

UserDAOImpl.java

package com.test.dao.impl;

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

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

 

4.服务类

UserService.java

package com.test.service;

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

public class UserService {
	private UserDAO userDAO;

	// 构造器注入用到
	public UserService(UserDAO userDAO) {
		super();
		this.userDAO = userDAO;
	}
	
	//set注入用到
//	public UserDAO getUserDAO() {
//		return userDAO;
//	}
//
//	public void setUserDAO(UserDAO userDAO) {
//		this.userDAO = userDAO;
//	}

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

}

 

5.配置文件

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

	<bean id="userDAOImpl" class="com.test.dao.impl.UserDAOImpl"></bean>
	<bean id="userService" class="com.test.service.UserService">
		<!-- set注入 -->
<!--		<property name="userDAO">-->
<!--			<ref bean="userDAOImpl" />-->
<!--		</property>-->
		<!-- 构造器注入(UserService中要有个带UserDAO参数的构造方法) -->
		<constructor-arg>
			<ref bean="userDAOImpl"/>
		</constructor-arg>
	</bean>
	
</beans>

 

6.jUnit测试类

UserServiceTest.java

package com.test.service;

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

import com.test.model.User;

public class UserServiceTest {

	@Test
	public void testAdd() throws Exception {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
		UserService service = (UserService) applicationContext.getBean("userService");
		User u = new User();
		u.setUsername("zhangsan");
		u.setPassword("123");
		service.add(u);
	}

}