강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

parkhs님의 프로필 이미지
parkhs

작성한 질문수

윤재성의 만들면서 배우는 Spring MVC 5

56강 글 작성하기2

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

작성

·

219

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의 사용목적과 생성 시점을 잘 생각해주시면 답을 찾으실 수 있을겁니다.

parkhs님의 프로필 이미지
parkhs

작성한 질문수

질문하기