ManagedBean上的唯一服务或许多服务

时间:2015-10-23 18:19:41

标签: jsf architecture ejb managed-bean

在我的工作中使用以下模式:ManagedBeans总是有一个服务。当我们需要在ManagedBean中使用不同的服务时,使用所需的服务在Service中创建一个方法。 但我想知道最正确的是将所有必要的服务直接注入ManagedBean,因为我发现在服务中始终只创建方法来调用其他服务非常烦人。显然它也会降低服务的凝聚力,因为它最终会有不应该有的方法。

这是我工作中使用的方式。

@ManagedBean
@ViewScoped
public class UserController {

    private User user;
    private List<Job> jobs;

    @Inject
    private UserService userService;

    @PostConstruct
    public void init() {
        users = userService.listAllJobs();
    }

    public User getUser() {
        return user;
    }

    public List<Job> getJobs() {
        return jobs;
    }

    public void saveUser() {
        userService.save(user);
    }
}

@Stateless
public class UserService{

    @Inject
    private JobService jobService;

    public List<Job> listAllJobs(){
        jobService.listAll();
    }
}

这是我喜欢的方式,也认为更正确。而不是在UserService中创建listAllJobs方法,使其不那么紧密,我只是将JobService注入UserController。这就是我将如何处理这个ManagedBean所需的所有服务

@ManagedBean
@ViewScoped
public class UserController {

    private User user;
    private List<Job> jobs;

    @Inject
    private UserService userService;

    @Inject
    private JobService jobService;

    @PostConstruct
    public void init() {
        users = jobService.listAll();
    }

    public User getUser() {
        return user;
    }

    public List<Job> getJobs() {
        return jobs;
    }

    public void saveUser() {
        userService.save(user);
    }
}

我想在我的工作中使用第二种方式,但不知道是否是最好的方法。请告诉我最好的和最好的

0 个答案:

没有答案