2가지 방법이 있다.
1) 어노테이션 사용
2) xml 에 등록
여기서는 1번을 다루고자 한다
다음의 서비스 클래스가 있다.
@Service
public class test{
Map<String, Object> map;
public void action(){
System.out.println(map.get("key"));
}
}
action을 바로 실행하면 객체가 생성되지 않았기 때문에 에러가 난다.
그래서 @PostConstruct 를 이용하면 된다.
@Service
public class test{
Map<String, Object> map;
@PostConstruct
public void init(){
map = new HashMap<String, Object>();
map.put("key", "test");
}
public void action(){
System.out.println(map.get("key"));
}
}
그럼 Autowired 를 이용해 외부의 의존을 가져야할 때에는 어떻게 될까?
예를들어 아래와 같은 상황.
@Service
public class test{
Map<String, Object> map;
@Autowired
private Test2Service test2Service;
@PostConstruct
public void init(){
map = new HashMap<String, Object>();
map.put("key", test2Service);
}
public void action(){
map.get("key");
}
}
된다.
autowired 가 먼저 생성된 후에 init 메서드가 실행된다.
'공부 > 프로그래밍' 카테고리의 다른 글
[javascript] 배열 내 오브젝트의 특정 값 찾기 및 삭제하기 (0) | 2017.10.19 |
---|---|
[JAVA] Mybatis 대용량 배치처리 시 사용 (ResultHandler) (0) | 2017.10.18 |
[정규식-JAVA] 금액에 콤마찍기 (0) | 2017.09.28 |
[정규식-JAVA] 쿠폰 or 카드번호 가운데에 '-' 삽입 (0) | 2017.09.28 |
파일다운로드 개발할 때 유의할 점. (0) | 2017.09.20 |
댓글