SpringBoot

[SpringBoot] DI 주입하는 방법 + 롬복 이용

Jeong Jeon
반응형

우리는 Spring의 강력한 기능 DI를 기본적으로 사용하고있다.

간단하게 DI를 하는 방법 몇가지를 적어놓으려고한다.

 

1). 필드 주입

가장 간단하게 많이 사용하는 방식이다.

하지만 해당 방법으로는 TestRepository에 Access할 방법이 없다.

public class TestService{
  @Autowired
  private TestRepository testRepository;
}

 

2). Setter 주입

Test 코드 작성할때 사용하기가 편하다는 장점이있다.

하지만 다른곳에서 해당 Repository를 바꿔버릴수가 있다. 굳이 바꿀 일이없으니 사용하지 않는다.

public class TestService{

	private TestRepository testRepository;
    
	@Autowired
    public void setTestRepository(TestRepository testRepository){
    	this.testRepository = testRepository;
    }
}

 

3). 생성자 주입

가장 권장하는 방식이다. Spring에서도 가장 권장하는 방식임으로.. 

TestService에 @Autowired를 보통 다는데 만약 생성자가 하나밖에 없다면 Spring에서 @Autowired를 생략할수 있게 해준다.

public class TestService{

	private final TestRepository testRepository;
   
    public TestService(TestRepository testRepository){
    	this.testRepository = testRepository;
    }
}

 

해당 방식을 롬복을 사용하면 더 간단한 코드로 만들수 있다.

@RequiredArgsConstructor를 사용하면 final로되어있는 필드만 가지고 생성자를 자동으로 생성해준다.

@RequiredArgsConstructor
public class TestService{

	private final TestRepository testRepository;
}

 

지난 번에 주입관련해서 DI를 제대로 못받았던 적이있는데, 권장하는 방법인 생성자 주입을 사용하면 다 깨끗하게 사용할 수 있다. 다시 기억.

반응형