16.java configuration으로 변경
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();
댓글남기기