Это более важный вопрос типа практики.Весна Autowiring, у меня есть только одна реализация, я должен автоуведовать? И если да, должен ли я автоувеличивать реализацию?
Я слышал десятки раз, что:
а), когда весной автоматическое связывание лучше практика autowire интерфейса «не» реализации.
и ..
б) Я также слышал, что если у вас есть только «один» реализация, то вы не должны быть действительно с помощью интерфейса.
Вот моя дилемма, у меня есть интерфейс «MyService» и одна реализация MyServiceImpl
. Я использую @Autowiredz MyService in
MyController` и в 'MyServiceTest'.
У меня нет необходимости в другой реализации.
Очевидно, что это нарушает правило b), но аутсорсинг реализации нарушит правило a).
Так что мой вопрос: что мне делать? Должен ли я просто отказаться от использования Spring вообще в этом случае и просто создать экземпляр «MyService», используя новое ключевое слово?
Не используйте новое ключевое слово! Если вы используете новое ключевое слово, служба больше не используется в контексте весны. – Patrick
Спасибо, так что было бы лучшей практикой в этой ситуации? Чтобы полностью потерять интерфейс и просто выполнить аутсорсинг реализации? Или сохранить его так же, как и с автоподзаводом inteface (хотя у меня только одна реализация?). –