03 스프링 구조

p36 - src/main/java/spring/basic

public class User {
    private Long userId;
    private String name;
    private String rank;
    private LocalDate registrationDate;
    private LocalDate updateDate;

    public User(Long userId, String name, String rank, LocalDate registrationDate, LocalDate updateDate) {
        this.userId = userId;
        this.name = name;
        this.rank = rank;
        this.registrationDate = registrationDate;
        this.updateDate = updateDate;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRank() {
        return rank;
    }

    public void setRank(String rank) {
        this.rank = rank;
    }

    public LocalDate getRegistrationDate() {
        return registrationDate;
    }

    public void setRegistrationDate(LocalDate registrationDate) {
        this.registrationDate = registrationDate;
    }

    public LocalDate getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(LocalDate updateDate) {
        this.updateDate = updateDate;
    }
}

p37

public interface UserRepository {
    void save(User user);
    List<User> getUsers();
    Optional<User> getUserByUserId(Long userId);
}

p38

@Component
@Qualifier("userRepositoryImpl")
public class UserRepositoryImpl implements UserRepository {

    private static ConcurrentMap<Long, User> users = new ConcurrentHashMap<>();
    @Override
    public void save(User user) {
        users.put(user.getUserId(), user);
    }

    @Override
    public List<User> getUsers() {
        return new ArrayList<>(users.values());
    }

    @Override
    public Optional<User> getUserByUserId(Long userId) {
        return users.values().stream().filter(user -> user.getUserId().equals(userId)).findAny();
    }
}

Last updated