[SPRING] 스프링 종속성 삽입 Autowiring Null [duplicate]
SPRING스프링 종속성 삽입 Autowiring Null [duplicate]
나는 RestTemplate을 사용하고 그것을 autowire 할 수 있었다. 그러나 나는 나머지 클래스 템플릿 관련 부분을 다음과 같이 다른 클래스로 옮기고 싶다 :
public class Bridge {
private final String BASE_URL = "http://localhost:8080/u";
@Autowired
RestTemplate restTemplate;
public void addW() {
Map<String, String> x = new HashMap<String, String>();
W c = restTemplate.getForObject(BASE_URL + "/device/yeni", W.class, x);
System.out.println("Here!");
}
}
그리고 다른 클래스에서 저는 그것을 다음과 같이 부릅니다 :
...
Bridge wb = new Bridge();
wb.addW();
...
나는 Spring과 Dependency Injection에 대해 새로운 것이다. 내 restTemplate 변수가 null이고 예외가 발생합니다. 어떻게 해결할 수 있습니까 (나는 새로운 키워드를 사용하는 것과 관련이 있는지 모르겠습니다)?
해결법
-
==============================
1.Bridge wb = new Bridge ()를 사용하면 종속성 삽입이 작동하지 않습니다. Spring이 관리하지 않기 때문에 restTemplate은 삽입되지 않습니다.
Bridge wb = new Bridge ()를 사용하면 종속성 삽입이 작동하지 않습니다. Spring이 관리하지 않기 때문에 restTemplate은 삽입되지 않습니다.
Bridge를 Spring bean 자체처럼 만들어야합니다. 특수 효과 별
@Service public class Bridge { // ... }
또는 bean 선언에 의해 :
<bean id="bridge" class="Bridge"/>
-
==============================
2.Jeha의 정답에 더 추가하면됩니다.
Jeha의 정답에 더 추가하면됩니다.
현재,
Bridge wb = new Bridge();
그 객체 인스턴스가 "봄 관리"가 아니라는 것을 의미합니다 - 즉. 봄은 그것에 대해 아무것도 모른다. 그렇다면 어떻게 알 수없는 의존성을 주입 할 수 있을까요?
Jeha가 말했듯이. @Service 주석을 추가하거나 응용 프로그램 컨텍스트 xml 구성 파일에 지정하십시오 (또는 Spring 3을 @Configuration 객체로 사용하는 경우)
그런 다음 Spring 컨텍스트가 시작되면 BeanFactory에 Bridge.class의 Singleton (기본 동작) 인스턴스가있게됩니다. 다른 Spring-Managed 오브젝트에 그것을 삽입하거나 수동으로 잡아 당겨서 제거하십시오.
Bridge wb = (Bridge) applicationContext.getBean("bridge"); // Name comes from the default of the class
이제는 종속성이 유선화됩니다.
-
==============================
3.new 연산자를 사용하고 여전히 모든 종속성을 주입하려면 스프링 구성 요소 (@Service로 주석을 추가 함)를 작성하는 대신 @Configurable 클래스로 만드십시오.
new 연산자를 사용하고 여전히 모든 종속성을 주입하려면 스프링 구성 요소 (@Service로 주석을 추가 함)를 작성하는 대신 @Configurable 클래스로 만드십시오.
이 방법은 새로운 연산자 종속성에 의해 인스턴스화 된 객체도 주입됩니다.
몇 가지 구성도 필요합니다. 자세한 설명과 샘플 프로젝트는 여기에 있습니다.
http://spring-framework-interoperability.blogspot.in/2012/07/spring-managed-components.html
from https://stackoverflow.com/questions/8091203/spring-dependency-injection-autowiring-null by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring MVC의 서블릿 매핑에서 url 패턴 디렉토리의 루트를 어떻게 매핑 할 수 있습니까? (0) | 2019.01.02 |
---|---|
[SPRING] JSP에서 List 객체 반복하기 (0) | 2019.01.02 |
[SPRING] XML 네임 스페이스는 어떻게 작동합니까? (0) | 2019.01.02 |
[SPRING] 스프링 부트의 기본 스케줄러 풀 크기는 얼마입니까? (0) | 2019.01.02 |
[SPRING] jsp의 세션 속성 인쇄 (0) | 2019.01.02 |