我正在使用 spring 4 开发一个 Web 应用程序。我没有更多的 Controller 。在它们之下,大多数 Controller 都使用相同的服务。所以我打算把所有这些公共(public)服务都移到一个公共(public) Controller 上,并从实际 Controller 上进行扩展。
这是我的类(class)。
B.java
class B{
final static Logger _log = Logger.getLogger(BaseController.class.getName());
public B( {
}
//common methods
}
TR.java
@Controller
@RequestMapping("myrequests/transfer")
public class TRController extends B{
final static Logger _log = Logger.getLogger(TRController.class.getName());
@Autowired
public TRController(IInstitutionService institutionService, HttpServletRequest request, ModelMapper modelMapper, ITransferService transferService) {
super(institutionService, accessService, userService, request, modelMapper, assetService);
this.transferService = transferService;
}
@RequestMapping(path = "new", method = RequestMethod.GET)
public String createRequest(ModelMap model) {
TransferRequest transferRequest = new TransferRequest();
User loggedInUser = userService.findByUserId(getPrincipal());
transferRequest.setRequesterContactNo(loggedInUser.getExtension());
transferRequest.setRequesterEmail(loggedInUser.getEmail());
return "newtransferrequest";
}
}
像上面一样,我有更多扩展 BaseController 的 Controller 。这是正确的做法吗?我在设计中做错了什么吗?
最佳答案
以我的拙见,一个好的方法是让 Controller 成为 Controller ,让服务来完成服务部分(应用程序的所有繁重工作和业务逻辑)。不要试图将 Controller 和服务塞进一个类中。
常见的做法是让 Controller 类保持干净。您可以添加各种 Controller 方法,这些方法指向从基服务类扩展的各种服务类。尝试一下,您会发现您的代码更加简洁。
关于java - 具有所有基本自动连线服务的基本 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45768008/