[Spring] Service 에서 @value 사용하기

Posted by 김성철

properties 파일에 있는 값을 services 에서 사용하기

* properties 파일에다가 db.namespace 로 선언한 변수를 가져다 쓰기 위해 사용  
* @value 는 스프링 실행 순서중 거의 최하위에 위치해 있음  
* @value 로 바로 가져다 쓰려고 하면, 스프링 실행순서에 기초하여서 service가 먼저 초기화 되고, 그뒤에 @value가 초기화 되어서,  
	service 에서 @Value 로 값을 넣은 변수들은 null 값이 출력됨  
  
	참고 : https://jeong-pro.tistory.com/167?category=793489  

방법

해당 서비스가 초기화 될때, init() 메소드를 사용하여 @value의 값을 주입  
init() 메소드위에 @PostConstruct 를 붙여줘야함  
=====================================================================================================================================================  
  
@Service("backupService")  
public class BackupServiceImpl implements BackupService {  
  
	@Autowired  
	private SqlSession sqlSession;  
	@Value("${db.namespace}")  
	private String namespace;  
  
	@PostConstruct  
	public void init(){  
		namespace = namespace+".backupMapper";  
	}  
  
=====================================================================================================================================================