2020/06/15 - [IT/SpringBoot] - 스프링 부트 #4.11. SQL 데이터베이스 작업
2020/06/14 - [IT/SpringBoot] - 스프링 부트 #4.10. 보안
2020/06/14 - [IT/SpringBoot] - 스프링 부트 #4.8-9 Graceful/RSocket
2020/06/14 - [IT/SpringBoot] - 스프링 부트 #4.7 웹 애플리케이션 개발
2020/06/14 - [IT/SpringBoot] - 스프링 부트 #4.5-6 국제화/JSON
2020/06/14 - [IT/SpringBoot] - 스프링 부트 #4.3-4 프로필/로깅
2020/06/14 - [IT/SpringBoot] - 스프링 부트 #4.2 외부화된 구성
2020/06/14 - [IT/SpringBoot] - 스프링 부트 #4.1 스프링 애플리케이션
2020/06/14 - [IT/SpringBoot] - 스프링 부트 #3. 사용
4.12. NoSQL 기술 협력
Spring Data는 다음과 같은 다양한 NoSQL 기술에 액세스하는 데 도움이 되는 추가 프로젝트를 제공합니다.
스프링 부트은 레디스, 몽고DB, 네오4j, Elasticsearch, 솔러 카산드라, 카우치베이스 및 LDAP에 대한 자동 구성을 제공합니다. 다른 프로젝트를 사용할 수 있지만 직접 구성해야 합니다. spring.io/projects/spring-data적절한 참조 설명서를 참조하십시오.
4.12.1. 레디스
Redis는 캐시, 메시지 브로커 및 풍부한 기능을 갖춘 키 가치 저장소입니다. 스프링 부트은 양상추 및 제디스 클라이언트 라이브러리에 대한 기본 자동 구성과 스프링 데이터 Redis에서제공하는 추상화를 제공합니다.
편리한 방법으로 종속성을 수집하기위한 "스타터"가 있습니다. 기본적으로 양상추를사용합니다. 이 스타터는 기존 응용 프로그램과 반응형 응용 프로그램을 모두 처리합니다.spring-boot-starter-data-redis
또한 반응성 지원을 통해 다른 매장과의 일관성을 위한 "스타터"를 제공합니다. spring-boot-starter-data-redis-reactive |
레디스연결
다른 스프링 빈과 마찬가지로 자동 구성, 또는 바닐라 인스턴스를 삽입할 수 있습니다. 기본적으로 인스턴스는 에서 Redis 서버에 연결하려고 합니다. 다음 목록은 다음과 같은 콩의 예를 보여 주어 있습니다.RedisConnectionFactory
StringRedisTemplate
RedisTemplate
localhost:6379
@Component
public class MyBean {
private StringRedisTemplate template;
@Autowired
public MyBean(StringRedisTemplate template) {
this.template = template;
}
// ...
}
고급 사용자 지정을 위해 구현하는 임의의 원두 수를 등록할 수도 있습니다. 제디스를 사용하는 경우 사용할 수도 있습니다. LettuceClientConfigurationBuilderCustomizer JedisClientConfigurationBuilderCustomizer |
자동 구성된 형식 중 일부를 직접 추가하는 경우 기본값을 대체합니다(제외가 해당 형식이 아닌 콩 이름을 기반으로 하는 경우제외). 기본적으로 클래스 경로에 있는 경우 풀이 된 연결 팩터리를 얻습니다.@Bean
RedisTemplate
redisTemplate
commons-pool2
4.12.2. 몽고DB
MongoDB는 기존의 테이블 기반 관계형 데이터 대신 JSON 과 같은 스키마를 사용하는 오픈 소스 NoSQL 문서 데이터베이스입니다. 스프링 부트는 몽고DB와 함께 작업하기위한 몇 가지 편의를 제공합니다, 포함 "스타터".spring-boot-starter-data-mongodb
spring-boot-starter-data-mongodb-reactive
MongoDB 데이터베이스에 연결
MongoDB 데이터베이스에 액세스하려면 자동으로 구성된 . 기본적으로 인스턴스는 에서 MongoDB 서버에 연결하려고 합니다. 다음 예제에서는 MongoDB 데이터베이스에 연결하는 방법을 보여 주겠습니다.org.springframework.data.mongodb.MongoDatabaseFactory
mongodb://localhost/test
import org.springframework.data.mongodb.MongoDatabaseFactory;
import com.mongodb.client.MongoDatabase;
@Component
public class MyBean {
private final MongoDatabaseFactory mongo;
@Autowired
public MyBean(MongoDatabaseFactory mongo) {
this.mongo = mongo;
}
// ...
public void example() {
MongoDatabase db = mongo.getMongoDatabase();
// ...
}
}
다음 예제와 같이 URL을 변경하고 복제본 집합과같은 추가 설정을 구성하도록 속성을 설정할 수 있습니다.spring.data.mongodb.uri
spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345,mongo2.example.com:23456/test
또는 개별 속성을 사용하여 연결 세부 정보를 지정할 수 있습니다. 예를 들어 다음 설정을 선언할 수 있습니다.application.properties
spring.data.mongodb.host=mongoserver.example.com
spring.data.mongodb.port=27017
spring.data.mongodb.database=test
spring.data.mongodb.username=user
spring.data.mongodb.password=secret
사용자 고유를 정의한 경우 적합한 을 자동으로 구성하는 데 사용됩니다.MongoClient
MongoDatabaseFactory
지정되지 않으면 기본값이 사용됩니다. 이전에 표시된 예제에서 이 줄을 삭제할 수 있습니다. spring.data.mongodb.port 27017 |
스프링 데이터 MongoDB를 사용하지 않는 경우. MongoDB 연결을 완전히 제어하려면 자신 또는 콩을 신고할 수도 있습니다. MongoClient MongoDatabaseFactory MongoDatabaseFactory MongoClient |
반응 형 드라이버를 사용하는 경우, Netty는 SSL에 필요합니다. 자동 구성은 Netty를 사용할 수 있고 사용할 팩터리가 이미 사용자 지정되지 않은 경우 이 팩터리로 자동으로 구성됩니다. |
몽고템플릿
스프링 데이터 MongoDB는 스프링의 디자인과 매우 유사한 MongoTemplate
클래스를 제공합니다. 와 마찬가지로, 스프링 부트은 다음과 같이 템플릿을 삽입할 수 있도록 콩을 자동으로 구성합니다.JdbcTemplate
JdbcTemplate
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
@Component
public class MyBean {
private final MongoTemplate mongoTemplate;
public MyBean(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
// ...
}
자세한 내용은 몽고오테오트
자바독을 참조하십시오.
스프링 데이터 몽고DB 리포지토리
스프링 데이터에는 MongoDB에 대한 리포지토리 지원이 포함됩니다. 앞서 설명한 JPA 리포지토리와 마찬가지로 기본 원칙은 메서드 이름에 따라 쿼리가 자동으로 구성된다는 것입니다.
실제로 스프링 데이터 JPA와 스프링 데이터 MongoDB모두 동일한 공통 인프라를 공유합니다. 이전에서 JPA 예제를 수행할 수 있으며, 이제 JPA가 아닌 MongoDB 데이터 클래스라고 가정하면 다음 예제와 같이 동일한 방식으로 작동합니다.City
@Entity
package com.example.myapp.domain;
import org.springframework.data.domain.*;
import org.springframework.data.repository.*;
public interface CityRepository extends Repository<City, Long> {
Page<City> findAll(Pageable pageable);
City findByNameAndStateAllIgnoringCase(String name, String state);
}
항목별 지정 위치를 사용하여 문서 검색 위치를 사용자 지정할 수 있습니다. @EntityScan |
풍부한 개체 매핑 기술을 포함하여 Spring Data MongoDB에 대한 자세한 내용은 참조 설명서를참조하십시오. |
임베디드 몽고
스프링 부트임베디드 몽고에대한 자동 구성을 제공합니다. 스프링 부트 응용 프로그램에서 사용하려면 에 종속성을 추가합니다.de.flapdoodle.embed:de.flapdoodle.embed.mongo
Mongo가 수신 대기하는 포트는 속성을 설정하여 구성할 수 있습니다. 임의로 할당된 무료 포트를 사용하려면 값을 0으로 사용합니다. 생성된 포트는 무작위로 할당된 포트를 사용하도록 자동으로 구성됩니다.spring.data.mongodb.port
MongoClient
MongoAutoConfiguration
사용자 지정 포트를 구성하지 않으면 포함된 지원은 기본적으로 27017이 아닌 임의 포트를 사용합니다. |
클래스 경로에 SLF4J가 있는 경우 Mongo에서 생성된 출력이 자동으로 라는 로거로 라우팅됩니다.org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongo
자신의 콩을 신고하여 Mongo 인스턴스의 구성 및 로깅 라우팅을 제어할 수 있습니다. 다운로드 구성은 콩을 선언하여 사용자 정의할 수 있습니다.IMongodConfig
IRuntimeConfig
DownloadConfigBuilderCustomizer
4.12.3. 네오4J
Neo4j는 기존 RDBMS 접근 방식보다 연결된 빅 데이터에 더 적합한 일류 관계에 의해 연결된 노드의 풍부한 데이터 모델을 사용하는 오픈 소스 NoSQL 그래프 데이터베이스입니다. 스프링 부트는 "스타터"를 포함하여 Neo4j와 함께 작업하기위한 몇 가지 편의를 제공합니다.spring-boot-starter-data-neo4j
Neo4j 데이터베이스에 연결
Neo4j 서버에 액세스하려면 자동으로 구성된 를 삽입할 수 있습니다. 기본적으로 인스턴스는 Bolt 프로토콜을 사용하여 Neo4j 서버에 연결하려고 시도합니다. 다음 예제에서는 Neo4j를 주입하는 방법을 보여 주습니다.org.neo4j.ogm.session.Session
localhost:7687
Session
@Component
public class MyBean {
private final Session session;
@Autowired
public MyBean(Session session) {
this.session = session;
}
// ...
}
다음 예제와 같이 속성을 설정하여 사용할 uri 및 자격 증명을 구성할 수 있습니다.spring.data.neo4j.*
spring.data.neo4j.uri=bolt://my-server:7687
spring.data.neo4j.username=neo4j
spring.data.neo4j.password=secret
콩이나 콩을 추가하여 세션 생성을 완전히 제어할 수 있습니다.org.neo4j.ogm.config.Configuration
org.neo4j.ogm.session.SessionFactory
임베디드 모드 사용
응용 프로그램의 종속성에 추가하면 Spring Boot는 응용 프로그램이 종료될 때 데이터를 유지하지 않는 Neo4j의 프로세스 내 임베디드 인스턴스를 자동으로 구성합니다.org.neo4j:neo4j-ogm-embedded-driver
임베디드 Neo4j OGM 드라이버는 Neo4j 커널 자체를 제공하지 않으므로 종속성으로 자신을 선언해야합니다. 호환 되는 버전의 목록에 대 한 Neo4j OGM 문서를 참조 하십시오. org.neo4j:neo4j |
클래스 경로에 여러 드라이버가 있을 때 임베디드 드라이버가 다른 드라이버보다 우선합니다. 설정하여 임베디드 모드를 명시적으로 비활성화할 수 있습니다.spring.data.neo4j.embedded.enabled=false
데이터 Neo4j 테스트는 임베디드 드라이버와 Neo4j 커널이 위에서 설명한 대로 클래스경로에 있는 경우 임베디드 Neo4j 인스턴스를 자동으로 사용합니다.
구성에서 데이터베이스 파일에 대한 경로를 제공하여 포함된 모드(예: . ) spring.data.neo4j.uri=file://var/tmp/graph.db |
네이티브 형식 사용
Neo4j-OGM은 Neo4j가 제공하는 네이티브 유형 중 하나에- 기반 속성 또는 일부 유형을 매핑할 수 있습니다. 뒤로 호환성상의 이유로 Neo4j-OGM의 기본값은 -based 표현을 사용하는 것입니다. 네이티브 형식을 사용하려면 다음 예제와 같이 종속성을 추가하거나 속성을 구성합니다.java.time.*
String
String
org.neo4j:neo4j-ogm-bolt-native-types
org.neo4j:neo4j-ogm-embedded-native-types
spring.data.neo4j.use-native-types
spring.data.neo4j.use-native-types=true
네오4jSession
기본적으로 웹 응용 프로그램을 실행하는 경우 세션은 요청의 전체 처리를 위해 스레드에 바인딩됩니다(즉, "보기에서 세션 열기" 패턴을 사용합니다). 이 동작을 원하지 않는 경우 파일에 다음 줄을 추가합니다.application.properties
spring.data.neo4j.open-in-view=false
스프링 데이터 네오4j 저장소
스프링 데이터에는 Neo4j에 대한 리포지토리 지원이 포함됩니다.
Spring Data Neo4j는 다른 많은 스프링 데이터 모듈과 마찬가지로 스프링 데이터 JPA와 공통 인프라를 공유합니다. JPA 예제를 이전에서 가져오고 JPA가 아닌 Neo4j OGM으로 정의할 수 있으며 다음 예제와 같이 저장소 추상화가 동일한 방식으로 작동합니다.City
@NodeEntity
@Entity
package com.example.myapp.domain;
import java.util.Optional;
import org.springframework.data.neo4j.repository.*;
public interface CityRepository extends Neo4jRepository<City, Long> {
Optional<City> findOneByNameAndState(String name, String state);
}
"시작"을 사용하면 리포지토리 지원뿐만 아니라 트랜잭션 관리를 할 수 있습니다. 위치를 사용자 지정하여 -bean에서 각각 사용하여 리포지토리 및 엔터티를 찾을 수 있습니다.spring-boot-starter-data-neo4j
@EnableNeo4jRepositories
@EntityScan
@Configuration
개체 매핑 기술을 포함하여 Spring Data Neo4j에 대한 자세한 내용은 참조 설명서를참조하십시오. |
4.12.4. 솔러
아파치 솔러는 검색 엔진입니다. Spring Boot는 Solr 5 클라이언트 라이브러리의 기본 자동 구성과 스프링 데이터 Solr에서제공하는 추상화를 제공합니다. 편리한 방법으로 종속성을 수집하기위한 "스타터"가 있습니다.spring-boot-starter-data-solr
솔러에 연결
다른 스프링 콩과 마찬가지로 자동 구성 인스턴스를 삽입할 수 있습니다. 기본적으로 인스턴스는 에서 서버에 연결하려고 합니다. 다음 예제에서는 Solr bean을 주입하는 방법을 보여 주습니다.SolrClient
localhost:8983/solr
@Component
public class MyBean {
private SolrClient solr;
@Autowired
public MyBean(SolrClient solr) {
this.solr = solr;
}
// ...
}
고유한 형식을 추가하면 기본값을 바꿉시다.@Bean
SolrClient
스프링 데이터 솔러 저장소
스프링 데이터에는 아파치 솔러에 대한 리포지토리 지원이 포함됩니다. 앞서 설명한 JPA 리포지토리와 마찬가지로 기본 원칙은 메서드 이름을 기반으로 쿼리가 자동으로 생성된다는 것입니다.
실제로 스프링 데이터 JPA와 스프링 데이터 Solr 모두 동일한 공통 인프라를 공유합니다. 이전에서 JPA 예제를 수행할 수 있으며, 이제 JPA가 아닌 클래스라고 가정하면 동일한 방식으로 작동합니다.City
@SolrDocument
@Entity
IP: 스프링 데이터 Solr에 대한 자세한 내용은 참조 설명서를참조하십시오.
4.12.5. 탄성 검색
Elasticsearch는 오픈 소스, 분산, RESTful 검색 및 분석 엔진입니다. 스프링 부트은 Elasticsearch를 위한 기본 자동 구성을 제공합니다.
스프링 부트은 다음과 같은 여러 클라이언트를 지원합니다.
- 공식 자바 "낮은 수준"과 "높은 수준"REST 클라이언트
- 스프링 데이터 Elasticsearch에서 제공하는
ReactiveElasticsearchClient
스프링 부트는 전용 "스타터"를 제공합니다.spring-boot-starter-data-elasticsearch
REST 클라이언트를 사용하여 Elasticsearch에 연결
Elasticsearch는 클러스터를 쿼리하는 데 사용할 수 있는 두 개의 REST 클라이언트인 "로우 레벨" 클라이언트와 "높음" 클라이언트를 제공합니다.
클래스 경로에 종속성이 있는 경우 스프링 부트은 기본적으로 대상되는 콩을 자동으로 구성하고 등록합니다. 다음 예제와 같이 구성 방법을 추가로 조정할 수 있습니다.org.elasticsearch.client:elasticsearch-rest-client
RestClient
localhost:9200
RestClient
spring.elasticsearch.rest.uris=https://search.example.com:9200
spring.elasticsearch.rest.read-timeout=10s
spring.elasticsearch.rest.username=user
spring.elasticsearch.rest.password=secret
고급 사용자 지정을 위해 구현하는 임의의 원두 수를 등록할 수도 있습니다. 등록을 완전히 제어하려면 콩을 정의합니다.RestClientBuilderCustomizer
RestClient
클래스 경로에 종속성이 있는 경우 스프링 부트은 HTTP 구성을 다시 사용하여 기존 콩을 감싸는 것을 자동으로 구성합니다.org.elasticsearch.client:elasticsearch-rest-high-level-client
RestHighLevelClient
RestClient
반응성 REST 클라이언트를 사용하여 Elasticsearch에 연결
스프링 데이터 Elasticsearch는 반응성 방식으로 Elasticsearch 인스턴스를 쿼리하기 위해 배송됩니다. WebFlux 의 위에 구축되므로 이 지원을 활성화하는 데 사용이 유용합니다.ReactiveElasticsearchClient
WebClient
spring-boot-starter-elasticsearch
spring-boot-starter-webflux
기본적으로 스프링 부트은 자동으로 구성하고 대상콩을 등록합니다. 다음 예제와 같이 구성 방식을 추가로 조정할 수 있습니다.ReactiveElasticsearchClient
localhost:9200
spring.data.elasticsearch.client.reactive.endpoints=search.example.com:9200
spring.data.elasticsearch.client.reactive.use-ssl=true
spring.data.elasticsearch.client.reactive.socket-timeout=10s
spring.data.elasticsearch.client.reactive.username=user
spring.data.elasticsearch.client.reactive.password=secret
구성 속성이 충분하지 않고 클라이언트 구성을 완전히 제어하려는 경우 사용자 지정 빈을 등록할 수 있습니다.ClientConfiguration
스프링 데이터를 사용하여 Elasticsearch에 연결
Elasticsearch에 연결하려면 콩을 정의하거나 스프링 부트으로 자동으로 구성하거나 응용 프로그램에서 수동으로 제공해야 합니다(이전 섹션 참조). 이 구성을 사용하면 다음 예제와 같이 다른 스프링 콩과 마찬가지로 주입할 수 있습니다.RestHighLevelClient
ElasticsearchRestTemplate
@Component
public class MyBean {
private final ElasticsearchRestTemplate template;
public MyBean(ElasticsearchRestTemplate template) {
this.template = template;
}
// ...
}
스프링 부트이 있는 경우(일반적으로) 사용시 필요한 종속성이 있는 경우, 스프링 부트은 재활성 ElasticsearchClient 및 콩으로 자동 구성할 수도 있습니다. 그들은 다른 REST 클라이언트의 반응성 동등한.spring-data-elasticsearch
WebClient
spring-boot-starter-webflux
ReactiveElasticsearchTemplate
스프링 데이터 Elasticsearch 리포지토리
스프링 데이터에는 Elasticsearch에 대한 리포지토리 지원이 포함됩니다. 앞서 설명한 JPA 리포지토리와 마찬가지로 기본 원칙은 메서드 이름을 기반으로 쿼리가 자동으로 생성된다는 것입니다.
실제로 스프링 데이터 JPA와 스프링 데이터 Elasticsearch모두 동일한 공통 인프라를 공유합니다. 이전에서 JPA 예제를 수행할 수 있으며, 이제 JPA가 아닌 Elasticsearch 클래스라고 가정하면 동일한 방식으로 작동합니다.City
@Document
@Entity
스프링 데이터 Elasticsearch에 대한 자세한 내용은 참조 설명서를참조하십시오. |
스프링 부트은 클래식 및 반응형 Elasticsearch 리포지토리를 모두 지원하며, 또는 콩을 사용합니다. 대부분의 경우 해당 콩은 스프링 부트에 의해 자동 구성되며 필요한 종속성이 존재합니다.ElasticsearchRestTemplate
ReactiveElasticsearchTemplate
Elasticsearch 리포지토리를 백업하기 위해 사용자 고유의 템플릿을 사용하려는 경우 이름을 지정한 한 사용자 또는 이름을 추가할 수 있습니다. 콩 이름과 함께 도 마찬가지입니다.ElasticsearchRestTemplate
ElasticsearchOperations
@Bean
"elasticsearchTemplate"
ReactiveElasticsearchTemplate
ReactiveElasticsearchOperations
"reactiveElasticsearchTemplate"
다음 속성으로 리포지토리 지원을 비활성화하도록 선택할 수 있습니다.
spring.data.elasticsearch.repositories.enabled=false
4.12.6. 카산드라
Cassandra는 많은 상품 서버에서 대량의 데이터를 처리하도록 설계된 오픈 소스 분산 데이터베이스 관리 시스템입니다. 스프링 부트은 카산드라에 대한 자동 구성과 스프링 데이터 카산드라에서제공하는 그것의 상단에 추상화를 제공합니다. 편리한 방법으로 종속성을 수집하기위한 "스타터"가 있습니다.spring-boot-starter-data-cassandra
카산드라로 연결
다른 스프링 빈과 마찬가지로 자동 구성 또는 카산드라 인스턴스를 삽입할 수 있습니다. 속성을 사용하여 연결을 사용자 지정할 수 있습니다. 일반적으로 다음 예제와 같이 로컬 데이터 센터 이름을 제공합니다.CassandraTemplate
CqlSession
spring.data.cassandra.*
keyspace-name
contact-points
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=cassandrahost1:9042,cassandrahost2:9042
spring.data.cassandra.local-datacenter=datacenter1
모든 연락처 점에 대해 포트가 동일한 경우 바로 가기를 사용하고 다음 예제와 같이 호스트 이름만 지정할 수 있습니다.
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=cassandrahost1,cassandrahost2
spring.data.cassandra.local-datacenter=datacenter1
이 두 예제는 포트 기본값과 동일합니다. 포트를 구성해야 하는 경우 를 사용합니다. 9042 spring.data.cassandra.port |
고급 드라이버 사용자 지정을 위해 구현하는 임의의 원두 수를 등록할 수도 있습니다. 유형의 콩으로 사용자 정의 할 수 있습니다.DriverConfigLoaderBuilderCustomizer
CqlSession
CqlSessionBuilderCustomizer
여러 개의 콩을 만드는 데 사용하는 경우 빌더가 변경할 수 있으므로 각 세션에 대한 새 복사본을 삽입해야 합니다. CqlSessionBuilder CqlSession |
다음 코드 목록은 카산드라 빈을 주입하는 방법을 보여줍니다.
@Component
public class MyBean {
private final CassandraTemplate template;
public MyBean(CassandraTemplate template) {
this.template = template;
}
// ...
}
고유한 형식을 추가하면 기본값을 바꿉시다.@Bean
CassandraTemplate
스프링 데이터 카산드라 저장소
스프링 데이터에는 카산드라에 대한 기본 리포지토리 지원이 포함되어 있습니다. 현재, 이것은 이전에 논의 된 JPA 리포지토리보다 더 제한적이며 파인더 메서드에 서명해야합니다.@Query
스프링 데이터 카산드라에 대한 자세한 내용은 참조 설명서를참조하십시오. |
4.12.7. 카우치베이스
Couchbase는 대화형 응용 프로그램에 최적화된 오픈 소스, 분산 다중 모델 NoSQL 문서 지향 데이터베이스입니다. 스프링 부트은 소파베이스에 대한 자동 구성과 스프링 데이터 카우치베이스에서제공하는 그것의 상단에 추상화를 제공합니다. 편리한 방법으로 종속성을 수집하기위한 "스타터"가 있습니다.spring-boot-starter-data-couchbase
spring-boot-starter-data-couchbase-reactive
카우치베이스에 연결
Couchbase SDK 및 일부 구성을 추가하여 얻을 수 있습니다. 속성을 사용하여 연결을 사용자 지정할 수 있습니다. 일반적으로 다음 예제와 같이 연결 문자열,사용자 이름 및 암호를 제공합니다.Cluster
spring.couchbase.*
spring.couchbase.connection-string=couchbase://192.168.1.123
spring.couchbase.username=user
spring.couchbase.password=secret
일부 설정을 사용자 지정할 수도 있습니다. 예를 들어 다음 구성은 새 를 여는 데 사용할 시간 시간을 변경하고 SSL 지원을 가능하게 합니다.ClusterEnvironment
Bucket
spring.couchbase.env.timeouts.connect=3000
spring.couchbase.env.ssl.key-store=/location/of/keystore.jks
spring.couchbase.env.ssl.key-store-password=secret
자세한 내용은 속성을 확인합니다. 더 많은 제어를 하기 위해 하나 이상의 콩을 사용할 수 있습니다. spring.couchbase.env.* ClusterEnvironmentBuilderCustomizer |
스프링 데이터 카우치베이스 리포지토리
스프링 데이터에는 Couchbase에 대한 리포지토리 지원이 포함됩니다. 스프링 데이터 카우치베이스에 대한 자세한 내용은 참조 설명서를참조하십시오.
콩을 사용할 수 있는 경우 다른 스프링 빈과 마찬가지로 자동 구성 인스턴스를 삽입할 수 있습니다. 이는 위에서 설명한 대로 availabe이고 지정된 버킷 이름이 지정된 경우 발생합니다.CouchbaseTemplate
CouchbaseClientFactory
Cluster
spring.data.couchbase.bucket-name=my-bucket
다음 예제에서는 콩을 주입하는 방법을 보여 주습니다.CouchbaseTemplate
@Component
public class MyBean {
private final CouchbaseTemplate template;
@Autowired
public MyBean(CouchbaseTemplate template) {
this.template = template;
}
// ...
}
자동 구성에서 제공하는 콩을 재정의하기 위해 자체 구성에서 정의할 수 있는 몇 가지 콩이 있습니다.
- 의 이름이있는 A .
CouchbaseMappingContext
@Bean
couchbaseMappingContext
- 의 이름이있는 A .
CustomConversions
@Bean
couchbaseCustomConversions
- 의 이름이있는 A .
CouchbaseTemplate
@Bean
couchbaseTemplate
자신의 구성에서 이러한 이름을 하드 코딩하지 않으려면 스프링 데이터 카우치베이스에서 제공하는 다시 사용할 수 있습니다. 예를 들어 다음과 같이 사용할 변환기를 사용자 지정할 수 있습니다.BeanNames
@Configuration(proxyBeanMethods = false)
public class SomeConfiguration {
@Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS)
public CustomConversions myCustomConversions() {
return new CustomConversions(...);
}
// ...
}
4.12.8. LDAP
LDAP(경량 디렉터리 액세스 프로토콜)는 IP 네트워크를 통해 분산 디렉터리 정보 서비스에 액세스하고 유지 관리하기 위한 개방형 공급업체 중립적인 업계 표준 응용 프로토콜입니다. Spring Boot는 모든 호환 LDAP 서버에 대한 자동 구성뿐만 아니라 UnboundID의내장된 메모리 내 LDAP 서버에 대한 지원을 제공합니다.
LDAP 추상화는 스프링 데이터 LDAP에서제공합니다. 편리한 방법으로 종속성을 수집하기위한 "스타터"가 있습니다.spring-boot-starter-data-ldap
LDAP 서버에 연결
LDAP 서버에 연결하려면 "스타터"에 대한 종속성을 선언한 다음 다음 예제와 같이 응용 프로그램에서 서버의 URL을 선언해야 합니다.spring-boot-starter-data-ldap
spring-ldap-core
spring.ldap.urls=ldap://myserver:1235
spring.ldap.username=admin
spring.ldap.password=secret
연결 설정을 사용자 지정해야 하는 경우 및 속성을 사용할 수 있습니다.spring.ldap.base
spring.ldap.base-environment
이러한 설정에 따라 An이 자동으로 구성됩니다. 콩을 사용할 수 있는 경우 자동 구성된 에 연결됩니다. 예를 들어, 사용자 지정해야 하는 경우 자동 구성된 을 주입할 수 있습니다. 자동 구성이 사용할 수 있도록 사용자 지정에 플래그를 지정해야 합니다.LdapContextSource
DirContextAuthenticationStrategy
LdapContextSource
PooledContextSource
LdapContextSource
ContextSource
@Primary
LdapTemplate
스프링 데이터 LDAP 저장소
스프링 데이터에는 LDAP에 대한 리포지토리 지원이 포함됩니다. 스프링 데이터 LDAP에 대한 자세한 내용은 참조 설명서를참조하십시오.
다음 예제와 같이 다른 스프링 빈과 마찬가지로 자동 구성된 인스턴스를 삽입할 수도 있습니다.LdapTemplate
@Component
public class MyBean {
private final LdapTemplate template;
@Autowired
public MyBean(LdapTemplate template) {
this.template = template;
}
// ...
}
내장된 메모리 LDAP 서버
테스트를 위해 스프링 부트은 언바운드ID에서메모리 내 LDAP 서버의 자동 구성을 지원합니다. 서버를 구성하려면 다음과 같이 속성에 종속성을 추가하고 속성을 선언합니다.com.unboundid:unboundid-ldapsdk
spring.ldap.embedded.base-dn
spring.ldap.embedded.base-dn=dc=spring,dc=io
그러나 고유 이름에는 일반적으로 쉼표가 포함되어 있으므로 올바른 표기표를 사용하여 정의해야 하므로 여러 기본 dN 값을 정의할 수 있습니다. yaml 파일에서 yaml 목록 표기표를 사용할 수 있습니다.
속성 파일에서는 속성 이름의 일부로 인덱스를 포함해야 합니다.
|
기본적으로 서버는 임의포트에서 시작하여 일반 LDAP 지원을 트리거합니다. 속성을 지정할 필요가 없습니다.spring.ldap.urls
클래스 경로에 파일이 있는 경우 서버를 초기화하는 데 사용됩니다. 다른 리소스에서 초기화 스크립트를 로드하려는 경우 속성을 사용할 수도 있습니다.schema.ldif
spring.ldap.embedded.ldif
기본적으로 표준 스키마를 사용하여 파일의 유효성을 검사합니다. 속성을 설정하여 유효성 검사를 완전히 끌 수 있습니다. 사용자 지정 특성이 있는 경우 사용자 지정 특성 유형 또는 개체 클래스를 정의하는 데 사용할 수 있습니다.LDIF
spring.ldap.embedded.validation.enabled
spring.ldap.embedded.validation.schema
4.12.9. 유입DB
InfluxDB는 운영 모니터링, 애플리케이션 메트릭, 사물 인터넷 센서 데이터 및 실시간 분석과 같은 분야에서 빠르고 가용성이 높은 저장 및 타임시리즈 데이터 검색에 최적화된 오픈 소스 타임 시리즈 데이터베이스입니다.
유입DB에 연결
스프링 부트은 클라이언트가 클래스경로에 있고 데이터베이스의 URL이 설정된 경우 다음과 같이 인스턴스를 자동으로 구성합니다.InfluxDB
influxdb-java
spring.influx.url=https://172.0.0.1:8086
InfluxDB에 연결하려면 사용자와 암호가 필요한 경우 그에 따라 및 속성을 설정할 수 있습니다.spring.influx.user
spring.influx.password
유입DB는 OkHttp에 의존한다. 뒤에서 사용하는 http 클라이언트를 조정해야 하는 경우 콩을 등록할 수 있습니다.InfluxDB
InfluxDbOkHttpClientBuilderProvider
Spring Boot Reference DocumentationPhillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, Andy Wilkinson, Marcel Overdijk, Christian Dupuis, Sébastien Deleuze, Michael Simons, Vedran Pavić, Jay Bryant, Madhura Bhave, Eddú Meléndez, Scott FrederickLegal2.3.1.RELEASE Copyright © 2012-2020 Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically. |
출처 : https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/htmlsingle/#boot-features-nosql
'IT > SpringBoot' 카테고리의 다른 글
스프링 부트 #4.14. 메시징 (0) | 2020.06.15 |
---|---|
스프링 부트 #4.13. 캐싱 (0) | 2020.06.15 |
스프링 부트 #4.11. SQL 데이터베이스 작업 (0) | 2020.06.15 |
스프링 부트 #4.10. 보안 (0) | 2020.06.14 |
스프링 부트 #4.8-9 Graceful/RSocket (0) | 2020.06.14 |