Когда вы вызываете A = new A()
в вашем примере, вы всегда получаете новый экземпляр, потому что A не реализован как одноэлементный класс.
Тот факт, что он аннотирован как @Component, будет тольковоздействовать на этот класс, когда он создается в контексте весны, а переменная, созданная с помощью = new()
(есть исключения, но можно обобщать), не находится в контексте весны.
Если вы хотите, чтобы всегда было то же самоеbean, вам следует создать экземпляр переменной "a" с помощью @Autowired следующим образом:
@Autowired
private A a;
Также обратите внимание, что @Autowired будет работать только в том случае, если текущий класс тоже находится в контексте весны (выне создавать его с a = new (...)).