Где мне нужно использовать аннотации @Service @Transactional - PullRequest
1 голос
/ 08 мая 2020

Поскольку я обнаружил проблему в своем проекте, ища информацию о inte rnet, но, в частности, о StackOverflow, я заметил, что люди используют аннотацию @Service в разных позициях, некоторые в интерфейсе службы, некоторые в ServiceImpl класс. То же самое и с аннотацией @Transactional: некоторые использовали ее для методов, реализованных в классе ServiceImpl, другие - для методов в интерфейсе Service, другие - для методов RestController, а третьи - в репозитории. Короче, вместо того, чтобы прояснить мои идеи, они сбили меня с толку, поэтому мне нужна ваша помощь.

1 Ответ

1 голос
/ 08 мая 2020

Аннотация @Service помогает Springboot внедрить некоторый код, необходимый для общих служб. Если у вас есть интерфейс со многими реализациями, он может go там, но если у вас нет интерфейса и единственной реализации, он может go в самом классе. Это также гарантирует, что класс может быть введен в другие компоненты. См. здесь для получения более подробной информации.

Аннотация @Transactional должна быть помещена в метод, для которого требуется атомарность. Однако этот метод не может быть частным, см. здесь

...