Jsf ManagedBean上的唯一服务或多个服务

Jsf ManagedBean上的唯一服务或多个服务,jsf,architecture,ejb,managed-bean,Jsf,Architecture,Ejb,Managed Bean,在我的工作中使用了以下模式:ManagedBeans总是有一个服务。当我们需要在ManagedBean中使用不同的服务时,使用所需的服务在服务中创建一个方法。 但我想知道最正确的方法是否是将所有必要的服务直接注入ManagedBean,因为我发现总是在服务中创建方法来调用其他服务是非常烦人的。显然,它还会降低服务的内聚性,因为它最终将拥有不应该拥有的方法 这是我工作中使用的方法 @ManagedBean @视域 公共类用户控制器{ 私人用户; 私人名单工作; @注入 私人用户服务; @施工后 公

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

这是我工作中使用的方法

@ManagedBean
@视域
公共类用户控制器{
私人用户;
私人名单工作;
@注入
私人用户服务;
@施工后
公共void init(){
users=userService.listAllJobs();
}
公共用户getUser(){
返回用户;
}
公共列表getJobs(){
返回工作岗位;
}
public void saveUser(){
userService.save(用户);
}
}
@无国籍
公共类用户服务{
@注入
私人就业服务;
公共列表listAllJobs(){
jobService.listAll();
}
}
这是我喜欢的方式,也是我认为更正确的方式。我没有在UserService中创建listAllJobs方法,从而降低了它的内聚性,而是将JobService注入UserController。这就是我将如何处理这个ManagedBean所需的所有服务

@ManagedBean
@视域
公共类用户控制器{
私人用户;
私人名单工作;
@注入
私人用户服务;
@注入
私人就业服务;
@施工后
公共void init(){
users=jobService.listAll();
}
公共用户getUser(){
返回用户;
}
公共列表getJobs(){
返回工作岗位;
}
public void saveUser(){
userService.save(用户);
}
}
我想在工作中使用第二种方式,但不知道这是否是最好的方式。请告诉我什么是最好的和优点

你说得对。“ManagedBeans始终只有一个服务”毫无意义。对于将来的代码审查问题,请转到。你是对的。“ManagedBeans始终只有一个服务”毫无意义。对于将来的代码审查问题,请访问。