서버

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;
    }
}

 

 

이런식으로 하시면 됩니다 

감사합니다.