Spring&Spring Boot
(Spring Boot) 사용자 Class를 Bean 객체로 간단하게 설정하기 / Bean 객체 등록
Developer RyanKim
2018. 10. 31. 11:30
사용자 클래스의 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)
먼저 사용자 클래스를 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)