• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Xml 프로젝트에서의 @Lazy 작성 여부

20.10.27 08:42 작성 조회수 145

0

(강의시간 기준으로 00:20:00과 01:01:10입니다.)

Xml 프로젝트에서는 Bean을 활용할 때마다 @Lazy를 작성해야 하는걸로 알고있습니다. Xml 프로젝트일 경우 서버가 가동될 때 @Autowired 또는 @Resource가 있다면 최초의 요청없이 무조건 Bean을 주입하려고 시도하고 이때, 오류가 발생하기 때문에 @Lazy를 작성해주는걸로 알고있습니다.

Xml 프로젝트의 BoardController.java에서 

@Autowired

private BoardService boardService;

@Resource(name = "loginUserBean")

@Lazy

private UserBean loginUserBean;

boardService에 @Lazy가 없는 이유와 loginUserBean에는 왜 @Lazy가 있는지 차이에 대한 정확한 이유를 잘 모르겠습니다.

답변 1

답변을 작성해보세요.

1

loginUserBean은 로그인이 발생할 때 사용자 정보를 담기위한 bean입니다. 이에 bean을 정의할 때 sessionScope를 설정하였습니다. sessionScope 로 설정된 bean은 서버 가동시가 아닌 사용자의 최초의 요청이 발생할 때 bean이 생성되기 때문에 lazy를 붙혀줘야 합니다. 하지만 boardService는 딱 하나만 생성해서 사용하면 되므로 scope를 설정하지 않았고 이에 서버 가동시 객체가 생성되고 주입받으면 되기 때문에 lazy를 붙히지 않았습니다. bean의 사용목적과 생성 시점을 잘 생각해주시면 답을 찾으실 수 있을겁니다.