1 분 소요

XML Configuration을 Java Configuration으로 변경하기

xml 파일을 자바 파일로 바꾸기

클래스는 설정을 위한 자바클래스임을 설정 시켜줘야한다

ComponentScan("spring.di.ui")
@Configuration
public class NewlecDIConfig {
	@Bean
	public Exam exam() {

 

2개이상의 패키지를 스캔범주에 둔다면?

ComponentScan("spring.di.ui", "spring.di.entity)
@Configuratio
public class NewlecDIConfig {
	

 

bean이라는 태그를 이용해서 NewlecExam을 만드는 태그는?

<bean id ="exam1" class ="spring.di.entity.NewlecExam" p:kor="1" p:eng="1"/> 

아래로 바꾸기

 

@ComponentScan("spring.di.ui")
@Configuration
public class NewlecDIConfig {
	@Bean
	public Exam exam() {
		// 스프링이 호출을 하게 하여 자기가 new해서 만든 exam의 객체를 IOC컨테이너에 담게된다

		return new NewlecExam();
	}

}
	

xml은 스프링에게 부탁해서 객체를 만들었는데 java의 bean 은 내가 만들고 있다 : 지시서하는것이 아닌 설정

BEAN은 객체들을 만드는 컨테이너인데 어노테이션을 하면 컨테이너에 담는다

@Bean 어노테이션이 가지고 있는 exam은 컨테이너가 담겼을때 이름으로 부여되는것 이라고 생각한다 -> 명사형이다 (x함수명x)

 

  • ApplicationContext의 종류
 위치에 어떻게 알려주냐에 따라서 
ClassPathXmlApplicationContex : 어플리케이션의 주소를 얻고 싶으면 사용한다 (실행되는위치에)

FileSystemxmlApplicationContex: 현재 파일시스템의 위치를 기반 

XmlWebApplicationContex:웹의 url을 통해

AnnotiationConfigApplicationContex:어노테이션을 두어 스캔하는 방법으로 쓴다 

위의 3개는 xml을 기반으로 사용하고 아래의 어노테이션은 어노테이션할떄 사용한다

	ApplicationContext context = new AnnotationConfigApplicationContext(NewlecDIConfig.class);

실행해보면 잘 잘동 한다

constructor
total is 50, avg is 12.500000

 

register을 통해 Config을 여러개 설정 할 수 도 있다

	ApplicationContext context = new AnnotationConfigApplicationContext(NewlecDIConfig.class);
    //ctx.register(Appconfig.class,OtherCOnfig.class); 여러개 설정시 쉼표로 구분 할 수도 있고 아래와 같이 나눠서 호출도 가능하다 
    ctx.register(NewlecAppConfig.class);
    ctx.refresh();

   ExamConsole console = (ExamConsole) context.getBean("console");// 이름으로
   	console.print();

카테고리:

업데이트:

댓글남기기