Я новичок в аннотациях, и мне интересно, нужна ли мне аннотация @Named для моего класса Bar. Я погуглил, но до сих пор не знаю, нужна ли аннотация для этого внутреннего класса.
public abstract class Foo{
//code
@Named
@Configuration
class Bar{
//code
}
}
В обычном javax.inject.Named
, согласно документации, аннотация предназначена для определения String based qualifier
. Если вы не собираетесь предоставлять квалификатор, вам не нужно помещать аннотацию. :-)
В Хотя весна в документации указано, что вы можете предоставить аннотацию @Named
без значения с тем же практическим эффектом, что и использование @Component
. Я бы не рекомендовал это, поскольку код выглядит вводящим в заблуждение.
@JohnEarl согласно stackoverflow.com/questions/18540696/… кажется, что вы действительно можете использовать его без квалификатора вместо @Component
.
Обновлен ответ с помощью обнаруженной нами весенней информации
Спасибо, очень полезный ответ.
забыл упомянуть, что я тоже использую пружину. В этом контексте мне объяснили, что @Named весной по-прежнему будет работать с классами без квалификатора. Не уверен, что это вообще меняет ответ.