개발/1일1문제해결
[Spring] @Resource, @inject, @autowired, static 으로 호출하는 방법
Gamii
2021. 7. 16. 00:10
728x90
질문) Controller나 Service에서 다른 java 파일을 호출해서 사용하고 싶을 땐 어떻게 해야하나요?
답) 두가지 방법이 있습니다.
첫번째는 어노테이션(@) 사용하는 방법, 두번째, static을 사용하는 방법이 있습니다.
우선 어노테이션(@) 사용 방법에는 대표적으로 3가지가 있습니다.
@Resource | @Inject | @Autowired | |
범용 | 자바에서 지원 | 자바에서 지원 | 스프링 전용 |
연결 방식 | 이름으로 연결 | 타입에 맞춰서 연결 | 타입에 맞춰서 연결 |
해당 코드위에 위 세가지 (@Resource, @Inject, @Autowired) 중 하나를 입력하면, 해당 java 파일을 사용할 수 있습니다. (자동 의존성 주입)
스프링 프레임워크를 사용하다가 다른 프레임워크로 바뀔 가능성이 있다면 @Inject, @Autowired를 사용하면 됩니다.
참고)
2021.07.19 - [1일1문제해결] - [Spring] @Autowired, @Inject, @Resource 사용법 및 차이
두번째는 static 메소드로 선언하는 것이다.
static으로 선언을 하면 메모리 할당이 되기 때문에 객체 생성 없이 바로 사용이 가능합니다.
class Fruit{
public static String getApple(){
String name = "apple";
return name;
}
public String getBanana(){
String name = "banana";
return name;
}
}
Fruit.getApple();
//static이여서 객체 생성없이 바로 호출 가능.
Fruit.getBanana();
//static이 아니여서 바로 호출 불가능.
//객체 생성후 사용 가능.
// Fruit fruit = new Fruit();
// fruit.getBanana();