티스토리 뷰

카테고리 없음

Spring 에서 Java POJO 주입

비가온다 2019. 9. 28. 12:41

기본적으로 스프링에서는 @Configuration 어노테이션을 선언해서 POJO를 빈으로 만들 수 있다.

 

@Configuration 이 선언된 클래스가 많다면 어떻게 해야 할까?

 

@import 어노테이션을 사용 한다면 구성 클래스를 하나로 모을 수 있다.

 

아래와 같이 config 클래스가 2개가 존재 한다.

 

@Configuration
Class AppConfig {
	@Bean
	public User user() {
    	User user = new User();
        user.setUserId("1");
        return user;
    }    
}

@Configuration
Class IbatisConfiguration {
	@Bean
    public UserDao userDao() {
    	UserDao userDao = new UserDao();
        return userDao;
    }
}

 

AppConfig의 User 빈 생성 로직에 userId를 "1"이 아닌 db에서 받아와 세팅 하고 싶다.

어떻게 해야 할까?

 

위에서 말한대로 @Import 어노테이션과 빈 주입을 위해 @Value 어노테이션을 사용 할 수 있다.

 

@Configuration
@Import(IbatisConfiguration)

@Value("#{userDao}")
private UserDao userDao;

Class AppConfig {
	@Bean
	public User user() {
    	User user = new User();
        String userId = userDao.getUserId();
        user.setUserId(userId);
        return user;
    }    
}

 

 

**Spring MVC 에서는 컨테이너 에서 servletContext, rootContext 2개를 생성 한다.

이 컨텍스트들은 각각에 명시된 Configuration 클래스들을 가져와서 적재한다.

이 것이 의미하는 바는

 

servletContext 는 Controller, Service, ViewResolver 와 같이 dispatcherServlet 와 관련된 config

rootContext 는 resource 나 미들티어 관련 config 

 

이런식으로 모아서 관리 하라는 것이 아닌가 싶다.

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday