현재 버전

질문하신분이  spring에서 DI로 정의된 클래스가 싱글턴이고 static도 하나의 인스턴스만 갖고

그래서 기능상 공용으로 사용하는 것이니 service를호출할 때 static 메소드로 만들어서 호출하려는 의도로 보입니다.



@Autowired

TestService testService;


public static void test(string a, string b){

 string c = testService.getId(a);

 System.out.println(" c val : " + c );

}

static메소드에서는 인스턴스 변수는 접근이 불가능합니다.

testService 싱글콘 인스턴스입니다.


@Autowired

private static TestService testService;

위에 static을 해주지 않아도 spring에서 싱글톤으로 인스턴스를 생성합니다.

 

참고로 에러 메시지를 보니 TestService DI선언이 xml에 혹은 어노테이션 방법으로 생성이 잘 되어있는지 확인해보는게 필요할것 같습니다.


static변수 static메소드 싱글톤 관련 링크 입니다.

https://wikidocs.net/228


수정 이력

2016-10-18 14:14:03 에 아래 내용에서 변경 됨 #1

질문하신분이  spring에서 DI로 정의된 클래스가 싱글턴이고 static도 하나의 인스턴스만 갖고

그래서 기능상 공용으로 사용하는 것이니 service를호출할 때 static 메소드로 만들어서 호출하려는 의도로 보입니다.



@Autowired

TestService testService;


public static void test(string a, string b){

 string c = testService.getId(a);

 System.out.println(" c val : " + c );

}

static메소드에서는 인스턴스 변수는 접근이 불가능합니다.

testService 싱글콘 인스턴스입니다.


@Autowired

private static TestService testService;

위에 static을 해주지 않아도 spring에서 싱글톤으로 인스턴스를 생성합니다.

 

참고로 에러 메시지를 보니 TestService DI선언이 xml에 혹은 어로데이션방법으로 생성이 잘 되어있는지 확인해보는게 필요할것 같습니다.


static변서 static메소드 인글턴 관련 링크 입니다.

https://wikidocs.net/228