본문 바로가기

Spring

Annotation(어노테이션) 주입

인터넷 강의를 듣고 공부한 내용을 포스팅합니다.

'윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정' 이란 강의를 듣고 있습니다.

 

주입

전에 배운 것 처럼 bean에 대한 주입은 생성자를 통하거나, setter를 이용하여 값을 주입했었습니다. Annotation은 어떻게 다른지 확인해 보겠습니다.

 

생성자를 통한 주입

@Bean
public TestBean1 java1() {
	return new TestBean1(200,"문자열2" ,new DataBean1());
}

자바이기 때문에 그냥 생성자 호출해주면 됩니다!

 

Setter를 사용한 주입

@Bean
public TestBean1 java2() {
	
	TestBean1 t1 = new TestBean1();
	t1.setData1(400);
	t1.setData2("문자열4");
	t1.setData3(new DataBean1());
	
	return t1;
}

setter를 사용한 주입 역시 그냥 넣어주면 돼죠.

 

자동주입

@Bean(autowire = 주입방식)를 사용해주면 됩니다.

Autowire.BY_NAME :이름을 통한 자동주입

Autowire.BY_TYPE : 타입을 통한 자동 주입

스프링 5.1부터 더 이상 사용되지 않게 되었습니다. 5.1부터는 bean에 직접 설정하는 방식을 추천하고 있습니다.

 

@Bean
public DataBean2 data1() {
	return new DataBean2();
}

@Bean
public DataBean2 data2() {
	return new DataBean2();
}

@Bean(autowire = Autowire.BY_NAME)
public TestBean2 java3() {
	return new TestBean2();
}

@Bean
public DataBean3 data100() {
	return new DataBean3();
}
@Bean(autowire = Autowire.BY_TYPE)
public TestBean3 java4() {
	return new TestBean3();
}

 

끝!!