DI 를 위한 코드 정리

중복 제거

⇒ User 용 RowMapper 콜백을 메소드에서 분리해 중복을 없애고 재사용되게 하자.

RowMapper 는 매번 오브젝트를 새로 만들어야 할까?

  1. RowMapper 콜백 오브젝트는 상태 정보가 없다. → 하나의 콜백 오브젝트를 멀티 스레드에서 동시사용해도 문제 없음 : RowMapper 콜백은 하나만 만들어서 공유하자
// 재사용 가능하도록 독립
private RowMapper<User> userMapper = new RowMapper<User>() {
  @Override
  public User mapRow(ResultSet rs, int rowNum) throws SQLException {
    User user = new User();
    user.setId(rs.getString("id"));
    user.setName(rs.getString("name"));
    user.setPassword(rs.getString("password"));
    return user;
  }
};

⇒ UserDao 를 깔끔하고 간결하게 정리할 수 있게 되었다.

UserDao

JdbcTemplate