개발/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();