Я пытаюсь играть с примером, показанным здесь:Spring и автоматического связывания инъекции зависимостей с использованием конфигурации Java
http://projects.spring.io/spring-framework/
В этом примере один класс имеет компонент аннотацию и переменную-член с Autowired аннотаций. Элемент с автоподключением класса имеет тот же тип, что и Bean в классе @Configuration, также представленном в этом примере.
Этот пример кода выполняет вызов getBean в классе Component и выполняет вызов. Работает и работает автоматическая проводка. Это заставляет меня думать, что оба класса загружаются как бобы, управляемые весенним контейнером, хотя один класс не отмечен как bean-компонент.
Однако, когда я попытался немного более сложный пример использования этого же шаблон я получаю исключение: пружинный
org.springframework.beans.factory.NoSuchBeanDefinitionException
Похоже, что класс должен быть помечены как bean, чтобы получить управление весной, но представленный пример кажется другим.
Мой код, перечисленные здесь (имена изменены):
Config.java
package com.mydomain.config;
@Configuration
@ComponentScan
public class Config {
@Bean
A getAClass()
{
return new AImpl();
}
public static void main(String[] args) {
ApplicationContext context =
new AnnotationConfigApplicationContext(Config.class);
B b = context.getBean(B.class);
B.process();
}
}
B.java
package com.mydomain.component;
@Component
public class B{
@Autowired
private A a;
public void process()
{
return a.process();
}
A.java
package com.mydomain.component;
public interface A {
void process();
}
AImpl.java
package com.mydomain.component;
public class AImpl implements A {
void process()
{ }
}
Почему вы не вставляете свой код и полную трассировку стека исключения? –