해결된 질문
작성
·
117
답변 1
필드가 private이지만, 결국 호출하는 것은 public 메서드인 getter를 호출하여 문제가 되지 않습니다 😀
User 클래스를 아래와 같이 직접 getter를 생성하고, getter에는 출력문을 추가하신 후,
static class User {
private String username;
private int age;
public User(String username, int age) {
this.username = username;
this.age = age;
}
public String getUsername() {
System.out.println("username = " + username);
return username;
}
public int getAge() {
System.out.println("username = " + username);
return age;
}
}
강의 초반에서 다루었던 SpringEL 표현식의 다양한 객체 접근 방식에 대해 모두 getter가 호출되는 것을 확인해보실 수 있습니다 😀
<h1>SpringEL 표현식</h1>
<ul>Object
<li>${user.username} = <span th:text="${user.username}"></span></li>
<li>${user['username']} = <span th:text="${user['username']}"></span></li>
<li>${user.getUsername()} = <span th:text="${user.getUsername()}"></span></li>
</ul>
필드가 private이어도 접근가능하면 안되는 것 아닌가요? 브라우저에서 소스보기하면, 특정 클래스의 변수이름을 알 수 있으니까 보안적으로 문제가 되지는 않나요?