Spring_Bean에 값 세팅(2)

zooyeong·2023년 6월 9일
0

19주차

목록 보기
4/4
post-thumbnail

💡 @Configuration 어노테이션으로 Bean 등록

Bean(빈) 등록을 어노테이션 @Configuration 을 통해서 할 수 있다.(자바 설정 등록)
물론 단순히 어노테이션만 붙인다고 되는 것은 아니다.
servlet-context.xml 파일에 경로를 추가해주어야 한다.

<context:component-scan base-package="com.app.config"></context:component-scan>

경로를 추가해주었다.

com.app.config 패키지를 생성하고 config 파일을 하나 생성해보았다.


↓ BeanConfiguration.java

@Configuration
public class BeanConfiguration {
	
	//등록할 빈에 대한 리턴 형태의 메소드 작성
	@Bean
	public JavaConfigBean javaConfigBean() {
		return new JavaConfigBean();
	}
	
	@Bean
	public JavaConfigBean javaConfig1() {
		return new JavaConfigBean();
	}
	
}

↓ JavaConfigBean.java 클래스

public class JavaConfigBean {

	public JavaConfigBean() {
		System.out.println("JavaConfigBean 생성자 호출");
	}
}

↓ 컨트롤러

@Controller
public class JavaBeanController {

	@Autowired
	ApplicationContext applicationContext;
	
	@GetMapping("/javaBean")
	public String javaBean() {
		
		JavaConfigBean jb1 = (JavaConfigBean)applicationContext.getBean("javaConfigBean");
		JavaConfigBean jb2 = (JavaConfigBean)applicationContext.getBean("javaConfig1");

		System.out.println(jb1);
		System.out.println(jb2);
		
		return "checkBean";
	}
}

↓ 출력결과

>>> Bean(빈)이 생성되고 출력됨




Bean에 이름 지정하기

@Bean(name = "myConfigBean") //getBean("myConfigBean")
public JavaConfigBean sampleConfig1() {
	return new JavaConfigBean();
}

>>> name 속성에 값을 넣고 getBean을 통해 가져올 수 있다!




💡 @Component 로 Bean 등록하기

@Component 어노테이션을 사용하려면, @Configuration 어노테이션 사용과 마찬가지로 사용할 경로를 servlet-context.xml 파일에 추가해서 이 경로를 스캔할 것임을 지정해주어야 한다.

com.app.dao 패키지에 파일을 만들어 줄 것이므로 <context:component-scan base-package="com.app.dao"></context:component-scan> 경로 추가.

com.app.dao 경로 안에 SampleDao.java 클래스를 하나 만들어보았다.

@Component
public class SampleDao {
	//SampleDao 클래스
}

>>> @Component 어노테이션을 붙여주고 컨트롤러에서 가져와보겠다.

↓ 컨트롤러

@Controller
public class CompController {

	@Autowired
	SampleDao sampleDao;
	
	@RequestMapping("/comp1")
	public String comp1() {
		System.out.println("/comp1");
		System.out.println(sampleDao);
		
		return "checkBean";
	}
}

↓ 출력결과

>>> 출력결과 sampleDao에 객체가 주입되어 불려온 것을 확인할 수 있음!

profile
Have a good day ⌯’▾’⌯

0개의 댓글