spring mvcのmanager dao

2511 ワード

spring注入manager、dao:
	<context:annotation-config/>
	<context:component-scan base-package="com.longxia.**.manager" />
	<context:component-scan base-package="com.longxia.**.dao" />
manager(package comp.longxia.springmvc.manager.usermanager)を作成します.
IUserManager.java
public interface IUserManager {
	
	public void findUserByUserName(String userName);
UserManagerImpl.java
@Service
public class UserManagerImpl implements IUserManager {
	
	private static final Logger logger = LoggerFactory.getLogger(UserManagerImpl.class);
	
	@Autowired
	private IUserDao userDao;
	
	@Autowired
	private IManagerUserDao managerUserDao;
IUserDao.java
package com.longxia.springmvc.dao.userdao;

import java.util.List;

import com.longxia.springmvc.dao.IHibernateBaseDao;
import com.longxia.springmvc.model.User;

/**
 * @author xialong
 *
 */
public interface IUserDao extends IHibernateBaseDao<User>{
	
	public List<User> findAllUsers();
}
UserDaoImpl.java
package com.longxia.springmvc.dao.userdao;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;

import org.hibernate.SessionFactory;
import org.springframework.stereotype.Component;

import com.longxia.springmvc.dao.HibernateBaseDao;
import com.longxia.springmvc.model.User;

/**
 * @author xialong
 *
 */
@Component
public class UserDaoImpl extends HibernateBaseDao<User> implements IUserDao {
	@Resource
	private SessionFactory springmvcSessionFactory;
	@PostConstruct
	public void initSessionFactory() {
		super.setSessionFactory(springmvcSessionFactory);
	}
	/* (non-Javadoc)
	 * @see com.longxia.springmvc.dao.userdao.IUserDao#findAllUsers()
	 */
	@Override
	public List<User> findAllUsers() {
		String hql = "from User";
		return this.getHibernateTemplate().find(hql);
	}
	
}
余談:
@Component;@Controller;@Service;@Repository      annotation構成の注釈には@Componentで一般的な注釈を表しています.一つのクラスはspring容器管理のクラスです.つまり、このクラスはもうスプリングの管理に入っています.@Controller、@Service、@Repositoryは@Componentの細分化で、この三つの注釈は@Componentよりもっと多くの意味を持っています.それぞれコントロール層、サービス層、持久層の種類に対応しています.@Repositoryタグは持久層のクラスに名前を定義し、Springをこの名前に基づいてこのクラスに関連付けるものです.
@Serviceはサービス層用のIServiceImpl類のファイルで、機能は@Repositoryと似ています. 
また、@Autowiredは注入用です.