[SPRING] Spring을 사용하여 동일한 클래스를 주입 할 수 있습니까?
SPRINGSpring을 사용하여 동일한 클래스를 주입 할 수 있습니까?
나는 클래스를 Service를 구현하고 Service StereoType으로 주석 처리 된 UserService라고 말하고 Spring AOP를 사용하고 있으며 임시 해결 방법을 원한다. (더 좋은 방법으로 할 수 있음을 알고있다.)
@Service
public class UserService implements Service{
@Autowired
private Service self;
}
나는 이것을 시도했지만 BeanNotFoundException을 얻었는데, 나는 무엇을 놓쳤는가?
@Configurable을 사용하여 AspectJ와 함께 가야한다는 것을 알고 있지만 임시 해결 방법은 거의 찾고 있지 않다.
해결법
-
==============================
1.왜 지구상에서 이것을해야할까요? 현재 인스턴스 (예 : 자기)를 참조해야하는 모든 메소드에서 this 키워드를 사용하면됩니다.
왜 지구상에서 이것을해야할까요? 현재 인스턴스 (예 : 자기)를 참조해야하는 모든 메소드에서 this 키워드를 사용하면됩니다.
우리가 뭔가를 놓치고 있습니까? 당신이하려는 다른 일이 있다면, 질문을 명확히 해보자. 그러면 우리는 그것을 찔러 보게 될 것이다.
빈이 완전히 만들어 질 때까지 빈을 주입 할 수 없기 때문에 이것이 작동하지 않는다는 것을 의아해 할 것입니다 -> 이것은 Spring의 모든 프로퍼티를 주입해야한다는 것을 의미합니다. 실제로 Spring이 빈을 인스턴스화하려고 시도 할 때 순환 종속성이 생성되고, 그렇게되면 다른 빈을 Autowire 할 필요가 있음을 발견하게됩니다. Bean을 찾을 때 Bean이 초기화 된 Bean 목록에 추가되지 않았기 때문에 (현재 초기화 중이기 때문에) 시작할 수 없습니다. 말이 돼? Bean을 초기화 할 수 없으므로 BeanNotFoundException이 발생합니다.
-
==============================
2.수업 내용을 수정할 수 있습니다.
수업 내용을 수정할 수 있습니다.
@Service @Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON, proxyMode = ScopedProxyMode.INTERFACES) public class UserService implements Service { @Autowired private Service self; }
이게 효과가있다.
-
==============================
3.이 질문에 꽤 대답하지 않는 것을 알고 있지만 코드를 다시 작성하여 자체 호출에 적용되는 측면에 의존 할 필요가 없도록 제안합니다. 예를 들어, 일부 트랜잭션 메소드가있는 경우, 트랜잭션 메소드가 호출 메소드에서 올바르게 설정되었는지 확인하십시오.
이 질문에 꽤 대답하지 않는 것을 알고 있지만 코드를 다시 작성하여 자체 호출에 적용되는 측면에 의존 할 필요가 없도록 제안합니다. 예를 들어, 일부 트랜잭션 메소드가있는 경우, 트랜잭션 메소드가 호출 메소드에서 올바르게 설정되었는지 확인하십시오.
정말로 필요한 경우에는 클래스 ApplicationContextAware를 만들고 컨텍스트에서 bean-with-aspect를 가져올 수 있습니다
-
==============================
4.이것은 잘 작동합니다 -
이것은 잘 작동합니다 -
@Service(value = "someService") public class UserService implements Service{ @Resource(name = "someService") private Service self; }
from https://stackoverflow.com/questions/5107505/can-i-inject-same-class-using-spring by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Stateless 웹 애플리케이션 개발을 위해 Spring MVC 사용 (0) | 2019.04.30 |
---|---|
[SPRING] 간단한 jdbc 호출을 사용하여 입력 매개 변수로 배열을 저장 프로 시저에 전달하십시오. (0) | 2019.04.30 |
[SPRING] oauth2와 함께 스프링 클라우드 게이트웨이 사용 (0) | 2019.04.30 |
[SPRING] Spring 3.1 MVC 애플리케이션의 HTTP 상태 404 (0) | 2019.04.30 |
[SPRING] 참조하는 Java 프로젝트에서 정적 리소스 (WEB-INF) 폴더의 파일에 액세스하는 방법? (0) | 2019.04.30 |