서버
Springboot와 Mongodb 연결
고태광이
2019. 7. 7. 15:17
오늘은 Spring Boot 와 Mongodb 를 연결해보겠습니다.
우선 Mongodb 를 pom.xml 에 추가해줍니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
그리고 application.properties 파일에 아래와같이 추가해줍니다.
#MongoDB connect
spring.data.mongodb.uri=mongodb://{$userName}:{$password}@{$ip}:{$port}/{$database}
현재 mongodb 안에는 Video Collection이 있어서, Video 클래스를 만들어 줍니다.
@Data
@Document(collection = "video")
public class Video {
@Id
private String id;
private String title;
private String url;
private String thumnail;
private String regDate;
}
@Data -> lombok 이구요, 이건 getter, setter, toString 같은것을 자동으로 만들어준다고 생각하면 됩니다.
@Document -> collection 이름을 넣으면 해당 collection 과 매핑이 됩니다.
다큐먼트를 만들었으니, 해당 컬렉션에 CRUD 작업을 하기위해 repository를 만들어줍니다.
@Repository
public interface VideoRepository extends MongoRepository<Video,String> {
List<Video> findAll();
}
연습용이니 간단하게 만들었습니다.
그리고 각각 컨트롤러부분과 서비스 부분을 만들어서 해당 api를 호출하면 원하는 결과가 나오는것을 보실 수 있습니다.
@RestController
@RequestMapping("/video")
public class VideoController {
@Autowired
private VideoService videoService;
@RequestMapping(method = RequestMethod.GET)
List<Video> getVideos(){
return videoService.getVideoList();
}
}
@Service
public class VideoServiceImpl implements VideoService{
@Autowired
private VideoRepository videoRepository;
public List<Video> getVideoList(){
List<Video> videoList = videoRepository.findAll();
return videoList;
}
}
이런식으로 하시면 됩니다
감사합니다.