본문 바로가기
Spring&Spring Boot

(Spring Boot) 사용자 Class를 Bean 객체로 간단하게 설정하기 / Bean 객체 등록

by Developer RyanKim 2018. 10. 31.

사용자 클래스의 Spring Bean 등록/설정

먼저 사용자 클래스를 Spring Bean 으로 등록하는 쉬운 방법은 클래스 선언부 위에  @Component  어노테이션을 사용하는 것 입니다.

@Component  어노테이션이 붙은 클래스는 Spring Bean 객체로 등록이 되어 객체 생성/삭제를 Spring에서 관리하게 되겠죠?


@Component
public class MyClass {

// Methods ....
}






Spring Boot로 서비스를 구현 하는 중에, 제가 구현한 Class를 Bean객체로 사용하고싶었지만

해당 Class의 field 1을 Autowired로 가지고, field 2를 Instance화 하는데에 또 다른 Bean Class의 Instance 객체가 필요한 
특수한 상황이라 쉽지 않았습니다.

구글링을 통해 Config Class를 사용하는 예제를 보고 이것저것 해보았지만 제대로 동작하지 않았었는데

간단하게 설정하는 방법을 소개 해드립니다!  

글로 어떤 상황인지 이해가 잘 안 되셨을테니 바로 코드를 보겠습니다.


@Component
public class MyClass {

// Fclass1은 Bean객체로 등록되어있어서 @Autowired가 필요한 멤버

private Fclass1 fclass1;

// Fclass2는 Bean으로 등록되어있지 않지만


//해당 클래스의 생성자가 parameter로 인스턴스화된 Bean 객체(ParamClass)를 받아야함


//(ParamClass는 이미 Bean으로 등록되어있음)


private Fclass2 fclass2;

@Autowired
public MyClass(Fclass1 fclass1, ParamClass paramClass) {
this.fclass1 = fclass1;
this.fclass2 = new Fclass2(paramClass);
}

// Methods ....
}

먼저 Bean으로 등록하고 싶은 Class에 @Component Annotation을 추가하고,


해당 Class의 Field나 생성자 파라메터로 Instance화된 Bean 객체가 필요하다면 

생성자에 @Autowired Annotation을 추가합니다.

그리고 parameter에 필요한 Bean 객체를 받도록 정의해주시면 됩니다.

위 코드에서 인스턴스화된 Bean 객체로 사용한 것은 Fclass1 객체와  ParamClass 객체입니다.


설정이 끝나면 MyClass가 Bean 객체로 등록되어 Spring에서 제공하는 Bean 객체처럼 사용할 수 있게 됩니다! 



이상으로 포스팅을 마칩니다.
다음에 더 좋은 내용으로 만나요~


By RyanKim (Overnodes Devloper)


댓글