내가 @Autowired
이었던 클래스가 @Component
이고 또 다른 클래스가있다. 그러나이 @Component
주석을 제거하고 대신 이전에 autowired 클래스에 @Bean
주석 메소드를 사용하여 만듭니다.@Component에 주석이 달린 클래스를 @Bean 주석이 달린 메소드로 바꾼다
: 나는 @Component
주석을 제거하고이 같은 @Bean
주석이 방법을 쓴 그래서 지금
@Component
public class MyClass implements IMyClass
{
// Stuff
}
@Configuration
public class MyUsingClass
{
@Autowired
private IMyClass myClass;
private void methodUsingMyClass()
{
myClass.doStuff();
}
}
:
이public class MyClass implements IMyClass
{
// Stuff
}
@Configuration
public class MyUsingClass
{
@Bean
public IMyClass getMyClass()
{
return new MyClass();
}
....
}
내 질문이 주위의 이전 호출을 대체를 새 빈을 사용하려면 myClass.doStuff()
입니다. 지금은 민간 방법에 유형 MyClass
의 매개 변수를 전달 마십시오
private void methodUsingMyClass()
{
getMyClass().doStuff();
}
:
private void methodUsingMyClass(final MyClass myClass)
{
myClass.doStuff();
}
... 또는 내가이 메소드를 직접 호출 할 (나에게 올바른 방법을하지 않는 것)
... 또는이 둘 중 어느 것도 맞지 않습니까?