IT/부스트코스

부스트코스 웹앱개발 -5 스프링

은세고화 2020. 4. 28. 21:38
반응형

Bean class란

스프링에서 만든 자바객체라고 이해하면 편하다.

XML로 파일을 읽을 때 Bean을 사용하는 방법은

 

bean에다 나중에 호출할 때 찾을 수 있게 id값과 내가만든bean의 위치를 class="주소"에 넣는다.

이렇게 bean을 설정하면 Engine e = new Engine(); Car c = new Car(); 이 부분을 실제코드에서 작성하지 않아도 되고

 

ApplicationContext ac = new ClassPathXmlApplicationContext( "classpath:applicationContext.xml");

Car car = (Car)ac.getBean("car");

car.run();

실제 동작부분만 입력하면 된다.

 

위의 방법보다 더 간편한 것이 java config를 이용한 방법이다.

car와 engine 클래스를 따로 만든 후

원래라면 xml을 통해서 id값과 class값을 줘야했지만 @Bean을 활용해 바로 설정할 수 있다.

하지만 설정하기 전에 반드시 위쪽에 @Configuration을 적어야한다. 이 파일은 설정파일이다라는걸 자바에게 알려주는 역할이다.

@Configuration
public class ApplicationConfig {
	@Bean
	public Car car(Engine e) {
		Car c = new Car();
		c.setEngine(e);
		return c;
	}
	
	@Bean
	public Engine engine() {
		return new Engine();
	}
}

 

이 방법보다 더 간단한것이 @Component를 활용하는 것이다.

config클래스에

@Configuration

@ComponentScan("kr.or.connect.diexam01") 를 추가한다

컴포넌트 등의 어노테이션이 붙어 있는 클래스를 찾아 메모리에 모두 올려주는 역할을 한다.

@Component
public class Engine {
    public Engine(){
        System.out.println("Engine 생성자");
    }

    public void exec(){
        System.out.println("엔진이 동작합니다.");

    }
}

 

그 후 엔진과 Car에 component를 작성하면 끝이다.

반응형