【问题标题】:How to use userbean in controller-service-dao architecture?如何在 controller-service-dao 架构中使用 userbean?
【发布时间】:2017-11-20 14:40:11
【问题描述】:

我的 Spring-MVC 项目中有 UserBean 来存储用户。

@Component
@Scope(value="session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class UserBeanImpl implements UserBean {

    private User user;

    @Override
    public User getUser() {
        return user;
    }

    @Override
    public UserBean setUser(User user) {
        this.user = user;
        return this;
    }
}

我可以将它自动装配到服务层吗?我应该只将它自动连接到控制器中吗?

第一种方式(自动装配成服务):

@Service
public class MyServiceImpl implements MyService {

    @Autowired
    UserBean userBean;

    @Override
    public void doSomething(int id) {
       dao.doSomething(id,userBean.getUser());
    }

第二种方式(自动接线到控制器):

@Service
public class MyServiceImpl implements MyService {
    @Override
    public void doSomething(int id, User user) {
       dao.doSomething(id, user);
    }
}

@Controller
public class MyController {

    @Autowired
    UserBean userBean;

    @RequestMapping(value = {"/"})
    public void do(@RequestParam("id") int id) {
        myService.doSomething(id, userBean.getUser());
    }
}

在 Spring MVC-Service-DAO 架构方面什么更好?

【问题讨论】:

  • 我可以认为 UserBean 也是服务吗?

标签: spring-mvc service architecture controller stateful-session-bean


【解决方案1】:
@Service
public class MyServiceImpl implements MyService {

@Autowired
UserBean userBean;

@Override
public void doSomething(int id) {
   dao.doSomething(id,userBean.getUser());
}

这是最好的方式(Service),因为控制器层应该用于获取请求、发送响应和调用Services来运行业务逻辑。保存用户是一项服务层任务。

【讨论】:

    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多