在我的工作中使用以下模式: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);
}
}
我想在我的工作中使用第二种方式,但不知道是否是最好的方法。请告诉我最好的和最好的