728x90
반응형
-- 스프링 5 레시피 책을 공부하며 작성한 글입니다. --
안녕하세요 이번 글에서는 @Configuration , @Bean 어노테이션을 이용하여 자바 POJO를 생성하고 사용하여 보겠습니다.
먼저 프로퍼티를 가진 객체를 만들어 줍니다.
package com.apress.springrecipes.sequence;
import java.util.concurrent.atomic.AtomicInteger;
public class SequenceGenerator {
private String prefix;
private String suffix;
private int inital;
private final AtomicInteger counter = new AtomicInteger();
public SequenceGenerator() {
}
public String getSequence() {
StringBuilder builder = new StringBuilder();
builder.append(prefix)
.append(inital)
.append(counter.getAndIncrement())
.append(suffix);
return builder.toString();
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public void setSuffix(String suffix) {
this.suffix = suffix;
}
public void setInital(int inital) {
this.inital = inital;
}
}
그다음 Bean을 만들어 주기 위해 클래스를 하나 더 만들어 줍니다.
package com.apress.springrecipes.sequence.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.apress.springrecipes.sequence.SequenceGenerator;
@Configuration
public class SequenceGeneratorConfiguration {
@Bean
public SequenceGenerator sequenceGenerator() {
SequenceGenerator seqqen = new SequenceGenerator();
seqqen.setPrefix("30");
seqqen.setSuffix("A");
seqqen.setInital(100000);
return seqqen;
}
}
@Configuration 어노테이션을 클래스에 선언하면 클래스 내부에 @Bean 어노테이션을 사용한 메서드 들을 Ioc컨테이너의 자바 POJO로 등록할 수 있습니다.
위처럼 코드를 작성하여 sequenceGenerator라는 POJO를 Ioc 컨테이너에 등록합니다.
package com.practice.run;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.apress.springrecipes.sequence.SequenceGenerator;
import com.apress.springrecipes.sequence.config.SequenceGeneratorConfiguration;
public class run {
public static void main(String[] args) {
//등록된 빈을 가져오기 위해 ApplicationContext에 접근하기 위한 context객체를 만들어 줍니다.
ApplicationContext context =
new AnnotationConfigApplicationContext(SequenceGeneratorConfiguration.class);
//getBean을 사용하여 Ioc컨테이너 에서 SequenceGenerator 빈을 가져옵니다.
SequenceGenerator generator = context.getBean(SequenceGenerator.class);
System.out.println(generator.getSequence());
System.out.println(generator.getSequence());
}
}
AppicationContext에 접근하여 Ioc 컨테이너에 등록되어 있는 Bean을 가져옵니다.
main 메서드를 실행시키게 되면 다음과 같이 출력되는 것을 확인할 수 있습니다.
개인 복습용으로 간단히 정리하다 보니 설명이 많이 부족하네요 ㅎㅎ...
감사합니다.
728x90
반응형
'Spring & Spring Boot' 카테고리의 다른 글
스프링부트(Spring-Boot) - [ 회원관리 2편 ] (0) | 2021.01.23 |
---|---|
스프링부트(Spring-Boot) - [ 회원관리 1편 ] (0) | 2021.01.23 |
스프링부트(Spring-Boot) - h2 메모리 DB 사용하기 (0) | 2021.01.23 |
스프링부트(Spring-boot) 프로젝트 생성 및 설정 (0) | 2021.01.13 |
스프링(Spring) MVC 구조 1편 - [ 스프링5 레서피 ] (0) | 2021.01.06 |