Ваш OrderStatus
в том виде, в каком он сейчас, не требует аннотации @Component
, поэтому вы не должны его добавлять. Также вы не должны пытаться @Autowire
его где-нибудь без @Component
.
Конечно, вы можете добавить @Component
, а затем @Autowire
где угодно, но в этом нет смысла, так как вы можете больше легко создать экземпляр вашего POJO, просто набрав new OrderStatus()
. И это также может быть пустой тратой ресурсов.
Тогда, когда вам понадобятся эти две аннотации? Когда ваш POJO должен стать управляемым компонентом. Другими словами, когда Spring нужно делать какие-то автоматические действия. Учтите, что у вашего POJO будет что-то более сложное, например (проверьте комментарии):
// Enables autowiring OrderStatus -> autowired OrderStatus is managed
// by Spring
@Component
public class OrderStatus {
private List<String> values;
// Then there is something to autowire to OrderStatus also
// Without OrderStatus being managed by Spring this would be ignored!
// But because managed, Spring autowires also this one
// Of course SomeOtherManagedBean must be a @Component, for example
@Autowired
private SomeOtherManagedBean somb;
}