본문 바로가기
개발공부/궁금해서_찾아봄

Spring에서 this 쓰는 이유

by 맙소사 2021. 5. 27.
@Repository
public class BookDao {
	@Autowired
	SqlSessionTemplate sqlSessionTemplate;
	
	public int insert(Map<String, Object> map) {
		return this.sqlSessionTemplate.insert("book.insert", map);
	}
}

스프링 강의를 들으면서 궁금한 점이 생겼다. Dao나 Controller 클래스 상단에 인스턴스로 선언한 변수를 아래에서 호출할 때 굳이 this를 안 써도 코드가 동작하는데에 오류가 없음. 확인해보니 sqlsessiontemplate객체를 멤버 변수로 선언해서 의존성 주입을 하면 (static 처럼) 메모리에 바로 올라간다고 한다. 그럼에도 불구하고 this를 쓰는 이유는 개발자들이 해당 변수 호출할 때 인스턴스 변수인지 클래스 변수인지 구분하기 위해서 사용한다고 한다. 

 

그런데 그러면 static 선언을 해도 되는거 아닌가 궁금했는데 그런 경우에는 싱글턴 패턴을 쓴다고 하더라.

댓글