我有一个小的Spring MVC应用程序,其中一些类依赖于User对象。
我想将它声明为@Component,因此我可以使用@Autowired注释从任何地方访问此bean。
@Component
public class MyUser implements User {
// private fields
// getters and setters
public void fillByName(String username) {
userDao.select(username);
}
}
显然,User对象对每个用户都应该是唯一的。我使用Spring Security,因此我的SecurityContextHolder中有用户名,我可以使用它来初始化User对象。
初始化的最佳做法是什么?我应该像会话范围的bean一样声明它吗?或者我应该将它保持为单身类并只更新每个请求的所有字段?或者也许我应该从Controller类为每个请求创建一个新的User对象?
答案 0 :(得分:2)
我个人不喜欢将域对象作为组件。 我建议将MyUser作为类,并通过UserService(UserDao)获取此对象,这是一个组件。 当域对象意识到DAO时,它也不是一个好的设计。