2019. 4. 21. 18:09ㆍ[정리] 기능별 개념 정리/스프링 부트
Spring Data에서 지원하는 NoSQL
-> Redis, MongoDB, Neo4J, Elasticsearch, Redis, Cassandra ...
-> 이러한 다양한 기술을 사용할 때 지정해야하는 Bean 설정들을 스프링 부트가 알아서 해준다.
아래 예제들은 localhost에 연결한다고 가정한다.
localhost에 연결할 때는 딱히 큰 설정이 필요없는 경우가 많다.
각 spring boot starter 에서 제공하는 Repository 인터페이스는 JPA 와 공통의 infrastructure를 공유한다.
Spring boot starter 의존성외의 기타 다른 메이븐 의존성을 추가해야하는게 있을 수 있으니 상세한 사용법은 아래 Baedlung Document를 참조하자.
Redis
Redis 를 보통 사용하는 용도 : Cache, Message broker
spring-boot-starter-data-redis 또는
spring-boot-starter-data-redis-reactive 모듈을 import 해서 사용하면 된다.
방법 1. StringRedisTemplate 이용하기
@Component
public class MyRedis {
@Autowired
private StringRedisTemplate template;
}
방법 2. CrudRepository<,> 이용하기 : Entity -> @RedisHash() 같은 것을 달아줘야한다.
@Data
@RedisHash("MyUser")
public class MyUser{
@Id
private String id;
priavte Stirng message;
}
public interface MyUserRepository extens CrudRepository<MyUser, String>{
}
MongoDB
Relation이 없고 Json 기반의 DB.
내장된 mongoDB를 사용할 수도 있다.
spring-boot-starter-data-mongodb 또는
spring-boot-starter-data-mongodb-reactive 모듈을 import 해서 사용하면 된다.
방법 1. MongoDBFactory 사용하기 : mongoDBFactory.getDb();
방법 2. MongoTemplate 사용하기 : mongoTemplate.insert(); JdbcTemplate과 유사하다.
방법 3. Repository<,> 사용하기 : Entity -> @Document(collection="myCollection") 를 달아줘야한다.
Neo4J
연결되어있는 빅데이터를 다루는데 RDB보다 좋다.
spring-boot-starter-data-neo4j 또는
spring-boot-starter-data-neo4j-reactive 모듈을 import 해서 사용하면 된다.
방법 1. Session 사용하기
방법 2. Neo4jRepository<,> 사용하기 : Entity -> @NodeEntity()를 달아줘야한다.
properties 를 지정해줘야한다. (yml 변환 생략)
spring.data.neo4j.uri=bolt://localhost:7687
spring.data.neo4j.username=neo4j
spring.data.neo4j.password=neo4j
Baeldung Document
Redis : https://www.baeldung.com/spring-data-redis-tutorial
MongoDB : https://www.baeldung.com/spring-data-mongodb-tutorial
Neo4J : https://www.baeldung.com/spring-data-neo4j-intro
Elasitcsearch : https://www.baeldung.com/spring-data-elasticsearch-tutorial
Cassandra : https://www.baeldung.com/spring-data-cassandra-tutorial
'[정리] 기능별 개념 정리 > 스프링 부트' 카테고리의 다른 글
스프링 부트의 Mock (0) | 2019.04.28 |
---|---|
스프링 AOP, Transaction (0) | 2019.04.21 |
Spring boot's RestTemplate, WebClient (0) | 2019.04.21 |
Bean Singleton or Prototype (0) | 2019.04.18 |
스프링 부트 - Shedlock (0) | 2019.04.09 |