spring mvcのmanager dao
2511 ワード
spring注入manager、dao:
IUserManager.java
@Component;@Controller;@Service;@Repository annotation構成の注釈には@Componentで一般的な注釈を表しています.一つのクラスはspring容器管理のクラスです.つまり、このクラスはもうスプリングの管理に入っています.@Controller、@Service、@Repositoryは@Componentの細分化で、この三つの注釈は@Componentよりもっと多くの意味を持っています.それぞれコントロール層、サービス層、持久層の種類に対応しています.@Repositoryタグは持久層のクラスに名前を定義し、Springをこの名前に基づいてこのクラスに関連付けるものです.
@Serviceはサービス層用のIServiceImpl類のファイルで、機能は@Repositoryと似ています.
また、@Autowiredは注入用です.
<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.javapackage 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.javapackage 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は注入用です.