JSR-250은 자바플렛폼 공통 어노테이션이다. 기본 자바에서는 제공하지 않기 때문에 적용을 위해서는 라이브러리를 반드시 추가해야 한다. 

JSR-250 어노테이션 종류는 @Resource, @PostConstruct, @PreDestroy가 있다.

 

 

JSR-330 에서는 @Autowired 및 @Qualifier 어노테이션과 비슷한 @Inject  @Named 어노테이션이 있는데 이는 추후에 포스팅하도록 하겠다.

오늘은 JSR-250 어노테이션에 대해서 알아보자.

 

 

 

 

 

먼저, 의존성을 추가해보자

 

 

mvnrepository에서 jsr 250이라고 검색하면 다음과 같은 화면이 나온다.

Maven부분을 복사해서 pom.xml에 의존성을 추가하였다. 

 

 

version이 바뀔 수도 있기 때문에 javax.annotation-version이라는 이름의 변수로 따로 빼주었다.

 

 

 

 

 

 

 

 

1. @Resource

 

 

이렇게 @Autowired와 @Qualifier 어노테이션을 이용해서 타입기반의 bean을 자동주입할 때, id에 따라서 각각 주입할 수 있도록 설정해주었다. 

@Resource 어노테이션은 이걸 하나로 합쳐서(?) 사용할 수 있는 어노테이션이다.

 

 

 

빈 설정파일에 다음과 같이 data1, data2 라는 이름의 빈이 등록되어 있다고 하면, 

 

 

 

이렇게 @Resource(name="빈 이름") 어노테이션을 이용하여 타입기반으로 자동주입을 하지만 id로 빈을 찾아주어 주입할 수 있다. 

 

 

 

 

 

 

 

 

 

2. @PostConstruct 과 @PreDestory

 

 

 

TestBean 파일에 다음과 같이 init() 메소드와 destroy() 메소드를 정의해주고 

 

 

 

 

설정파일에서 Bean을 등록할때 다음과 같이 @Bean(initMethod="init", destroyMethod="destroy") 어노테이션을 이용하여 빈을 등록하면 객체가 생성되기 전에 init메소드가 호출되고, 객체가 소멸될 때 destroy메소드가 호출되도록 설정할 수 있었다.

 

 

@PostConstruct 과 @PreDestory 어노테이션을 이용하면 @Bean을 사용하여 빈을 등록할때 번거롭게 메소드들을 등록해주지 않아도 된다.

 

 

 

 

TestBean파일에서 init메소드와 destroy메소드를 정의할때 @PostConstruct 과 @PreDestory 어노테이션을 붙여서 정의해주면 자동으로 객체가 생성되기 전과 소멸될 때 메소드가 호출되도록 설정할 수 있다.

'JAVA > Spring' 카테고리의 다른 글

AOP  (0) 2020.04.17
@Component 어노테이션  (0) 2020.04.15
Annotation을 이용한 빈 설정  (0) 2020.04.11
Java를 이용한 Bean 객체 주입  (0) 2020.04.10
Java코드를 활용한 Bean 등록  (0) 2020.04.10

+ Recent posts