我正在構建一個SpringMVC項目,並且只是想對我的設計提供一些反饋。春季項目冗餘類
目前我有以下的UserDAO
package org.myproj.com.dao;
import org.myproj.com.entity.User;
public interface UserDao {
public User getById(Long id);
}
這是通過到UserDAOImpl
package org.myproj.com.dao;
import org.myproj.com.entity.User;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository("userDao")
public class UserDaoImpl implements UserDao{
@Autowired
private SessionFactory sessionFactory;
public User getById(Long id) {
return (User) sessionFactory.getCurrentSession().get(User.class, id);
}
}
實現,那麼我有一個服務層,UserService
package org.myproj.com.service;
import org.myproj.com.entity.User;
public interface UserService {
public User getById(Long id);
}
隨着IMPL ,UserServiceImpl
package org.myproj.com.service;
import org.myproj.com.dao.UserDao;
import org.myproj.com.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Service("userService")
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
public UserServiceImpl() {
}
@Transactional
public User getById(Long id) {
return userDao.getById(id);
}
}
這然後通過我的servlet與...
@Autowired
private UserService userService;
User user = userService.getById(1L);
我不禁覺得我的道,我的服務被複制了很多訪問。我正在考慮使用服務層來添加諸如角色等的東西,Dao執行業務邏輯。
您對這種設計有什麼看法?可以接受嗎?