java - 具有所有基本自动连线服务的基本 Controller

标签 java spring spring-mvc design-patterns

我正在使用 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/

相关文章:

java - 抽象类和嵌套类的ArrayList冲突

java - 如何知道 Jsoup 中的 Element 类是空的还是 null

java - HTTP Status 404. 翻页后不显示数据

java - spring session 错误 [由于存在同名模型对象,无法公开 session 属性 'user']

java - GridLayout 中心溢出组件

java - 创建不同的类,一个CarDemo类和一个Car类

java - Jackson json 只转换选定的字段和方法

java - 如何调用Spring Security Provider?

java - 如何通过 Spring Security 和 MarkLogic 的 Java 客户端 API 对用户进行身份验证?

java - : tag in the Spring template app? bean 是什么