recherche

Maison  >  Questions et réponses  >  le corps du texte

java - 在SpringMVC的Controller层处理业务逻辑好吗?

新接手的代码,发现在Controller里处理的逻辑就有几百行代码?又没有事务管理,这么做好吗?

天蓬老师天蓬老师2803 Il y a quelques jours840

répondre à tous(7)je répondrai

  • 阿神

    阿神2017-04-17 18:03:27

    Standard MVC implémente la logique métier directement dans le contrôleur, mais dans les projets réels, il est toujours recommandé d'encapsuler la couche de service entre le contrôleur et les opérations de base de données.
    D'une part, le contrôleur répond à différentes URL de requête, il y aura donc beaucoup de duplications de fonctionnalités, il est difficile à maintenir ;
    D'autre part, vous devez considérer que vos fonctions de service peuvent être ; exposé à d'autres front-ends à l'avenir, comme d'autres interfaces d'entrée, ou différents terminaux (tels que APP, mobile H5, etc.) ; certains services pourront même être séparés et déployés indépendamment

    ;

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-17 18:03:27

    Très mauvais, il est très difficile à développer et la maintenabilité est également très mauvaise.

    Le contrôleur doit être une couche mince et la logique métier doit être placée autant que possible dans la couche de service pour le traitement. Elle doit également être plus libre en termes de granularité et d'utilisation du service.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-17 18:03:27

    Bien sûr, ce n'est pas bon. La couche contrôleur est uniquement responsable de l'interaction des données métier, et la logique métier est gérée par la couche service

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-17 18:03:27

    La couche Contrôleur du projet que j'ai repris maintenant est également extrêmement volumineuse. Une méthode comporte des centaines de lignes, et il y a plusieurs couches d'imbrication. Je pense que le plus gros problème avec cela est que ce sera très gênant. maintenance ultérieure. Vous devez comprendre la logique métier précédente. Personnellement, je pense que la meilleure méthode est contrôleur-service-dao, avec un service responsable d'opérations logiques spécifiques. Les trois sont appelés dans l'ordre et découplés les uns des autres. possible ; le code doit être aussi extensible que possible.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-17 18:03:27

    一般controller层=》Service层=》Dao层。
    1.controller层,接受请求,进行分页,DTO对象封装操作。
    2.service层,执行逻辑,控制并发,事务。
    3.Dao层,与数据库交互。

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-17 18:03:27

    Même s'il est mis en service, ce sera toujours le bordel. . Il faut encore d'autres méthodes pour éviter les situations commerciales complexes et une mauvaise maintenabilité du code

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-17 18:03:27

    Laissez un collègue regarder le code aujourd'hui. La première chose qu'il a dite était que vous devriez mettre le code du contrôleur dans le service ;=_=;
    Cela dépend principalement de la complexité de l'entreprise. affaire très simple, alors il n'y a pas besoin du contrôleur au service en passant par le dao ; cela dépend aussi des spécifications de développement de toute l'équipe

    ;

    répondre
    0
  • Annulerrépondre