Friday, June 21, 2013

@Inject или @Autowired?

В чем разница между @Autowired и @Inject? Для меня этот вопрос только сейчас начал вызывать интерес. Порывшись на просторах интернета стало понятно, что разница в них лишь в идеи предоставления инструмента разработчику.

@Inject является частью JSR-303, которая определяет базовые аннотации для DI-фреймворков. Как вы уже догадались, это ведет к тому, что у вас улучшается переносимость между этими DI-фреймворками. Я не советую и не агитирую переходить на @Inject. Это личное дело каждого, просто данная аннотация является специфицированной :-)

Ну и теперь самое интересное - это настрока аннотации в pom'e и в Java-коде
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
view raw pom.xml hosted with ❤ by GitHub
Помните, что @Inject можно также вставлять в setter'ы
import javax.inject.Inject;
@Inject
private SomeClass someClass;
view raw SomeClass.java hosted with ❤ by GitHub

No comments: