[스프링] 스프링 부트와 Cassandra의 연동 방법
이 블로그에서는 스프링 부트 프레임워크를 사용하여 Cassandra 데이터베이스와의 연동 방법에 대해 알아볼 것입니다.
1. Cassandra 설정
먼저, 프로젝트의 pom.xml
파일에 Cassandra 드라이버 의존성을 추가해야 합니다.
<dependency>
<groupId>com.datastax.oss</groupId>
<artifactId>java-driver-core</artifactId>
<version>4.13.0</version>
</dependency>
그런 다음, application.properties
파일에 Cassandra 연결 정보를 설정합니다.
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=127.0.0.1
spring.data.cassandra.port=9042
2. Entity 및 Repository 생성
다음으로, Cassandra 테이블에 매핑될 엔터티와 해당 엔터티를 조작할 리포지토리를 생성해야 합니다.
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.Table;
@Table
public class Product {
@PrimaryKey
private int id;
private String name;
private double price;
// getter/setter methods
}
import org.springframework.data.cassandra.repository.Query;
import org.springframework.data.repository.CrudRepository;
public interface ProductRepository extends CrudRepository<Product, Integer> {
@Query("SELECT * FROM product WHERE id=?0")
Product findById(int id);
}
3. 서비스 및 컨트롤러 생성
마지막으로, 서비스와 컨트롤러를 생성하여 Cassandra 데이터베이스를 조작할 수 있도록 합니다.
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ProductService {
@Autowired
private ProductRepository productRepository;
public Product getProductById(int id) {
return productRepository.findById(id);
}
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping("/product/{id}")
public Product getProductById(@PathVariable int id) {
return productService.getProductById(id);
}
}
이제 스프링 부트와 Cassandra가 성공적으로 연동되었습니다. 이제 원하는 기능을 추가하여 Cassandra 데이터베이스를 조작할 수 있게 됩니다.
참고 문헌:
- 스프링 부트 공식 문서: https://spring.io/projects/spring-boot
- DataStax Java 드라이버 문서: https://docs.datastax.com/en/developer/java-driver/latest/
- 스프링 데이터 Cassandra 공식 문서: https://docs.spring.io/spring-data/cassandra/docs/current/reference/html/#reference