
예시로 저는 chatting_data라는 컬렉션을 만들었습니다.

의존성은 총4개 정도 간단하게 구성해주었습니다.

uri 부분은 Atlas에서 간단하게 확인할 수 있습니다.sever:
port: 8080
spring:
data:
mongodb:
uri: mongodb+srv://[아이디]:[비밀번호]@[클러스터].mongodb.net/[데이더베이스 이름]
Connect로 진입합니다.

Drivers를 선택합니다.

java를 선택하시면 아래에서 확인 할 수 있습니다.

insert 해줍니다.
오른쪽 상단의 Insert Document를 누르면 간단하게 Json형식으로 데이터를 insert 할 수 있습니다.
@Document(collection = "chatting_data") // 실제 몽고 DB 컬렉션 이름
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
public class ChattingEntity {
@Id
private Long id;
private String name;
@Field(name = "room_no")
private int roomNO;
}
id, 이름, 채팅방번호 3개의 필드를 가지도록 구성했습니다.
@Getter
@Setter
public class ChattingResDto {
private String name;
private int roomNO;
public ChattingResDto(String name, int roomNO) {
this.name = name;
this.roomNO = roomNO;
}
}
조회할 데이터를 dto로 정의 해두었습니다.
@Data
public class ResponseDto<T> {
private boolean success;
private int status;
private String code;
private String message;
private T response;
@Builder
public ResponseDto(boolean success, String code ,String message, int status, T response) {
this.success = success;
this.status = status;
this.code = code;
this.message = message;
this.response = response;
}
/**
* 성공 응답
*/
public static <T> ResponseDto<T> success(HttpStatus status, T data) {
return ResponseDto.<T>builder()
.success(true)
.status(status.value())
.code(status.name())
.message("성공적으로 처리되었습니다.")
.response(data)
.build();
}
}
응답 데이터를 ResponseDto로 추가적으로 감싸서 전달하는데 사용됩니다.
@Repository
public interface ChattingRepository extends MongoRepository<ChattingEntity, Long> {
ChattingResDto findByName(String name);
}
MongoRepository를 extends하며 위에 정의한 ChattingDto로 반환 받습니다.
@Service
@RequiredArgsConstructor
public class ChattingService {
private final ChattingRepository chattingRepository;
/**
* Read Test
*/
public ChattingResDto read(String name) {
return chattingRepository.findByName(name);
}
}
Service는 Repository에 데이터를 전달해주는 역할만 수행하도록 간단하게 구성했습니다.
ChattingController {
private final ChattingService chattingService;
/**
* READ Test 입니다.
*/
@GetMapping("/test")
public ResponseEntity<?> test(String name) {
return ResponseEntity.status(HttpStatus.OK).body(ResponseDto.success(HttpStatus.OK,chattingService.read(name)));
}
최종으로 service 클래스에서 반환 받은 데이터를 ResponseDto로 감싼 뒤 return 합니다.

초반에 넣었던 mongoDB의 데이터 조회에 성공했습니다.