[SPRING] 스프링 부트 (Spring Boot)와 MongoDB에 대한 연결 세부 사항 구성 방법
SPRING스프링 부트 (Spring Boot)와 MongoDB에 대한 연결 세부 사항 구성 방법
스프링 부트에 익숙하지 않아 MongoDB의 연결 세부 사항을 어떻게 구성 할 수 있는지 궁금합니다. 일반적인 예제를 시도했지만 아무도 연결 세부 사항을 다루지 않습니다.
사용하려고하는 데이터베이스와 MongoDB를 실행하는 호스트의 URL / 포트를 지정하고 싶습니다.
어떤 힌트 또는 팁?
해결법
-
==============================
1.부트 문서를 인용하기 만하면됩니다.
부트 문서를 인용하기 만하면됩니다.
spring.data.mongodb.host=mongoserver spring.data.mongodb.port=27017
spring.data.mongodb 접두사에 사용할 수있는 모든 옵션은 MongoProperties 필드입니다.
private String host; private int port = DBPort.PORT; private String uri = "mongodb://localhost/test"; private String database; private String gridFsDatabase; private String username; private char[] password;
-
==============================
2.maven 프로젝트에서 다음 내용으로 src / main / resources / application.yml 파일을 생성하십시오 :
maven 프로젝트에서 다음 내용으로 src / main / resources / application.yml 파일을 생성하십시오 :
spring.profiles: integration # use local or embedded mongodb at localhost:27017 --- spring.profiles: production spring.data.mongodb.uri: mongodb://<user>:<passwd>@<url>:<port>/<dbname>
Spring Boot는이 파일을 자동으로 사용하여 응용 프로그램을 구성합니다. 그런 다음 통합 프로필을 사용하여 스프링 부트 응용 프로그램을 시작할 수 있습니다 (로컬 MongoDB 사용)
java -jar -Dspring.profiles.active=integration your-app.jar
또는 프로덕션 프로파일로 (그리고 프로덕션 MongoDB를 사용하여)
java -jar -Dspring.profiles.active=production your-app.jar
-
==============================
3.Spring.data.mongodb.host 및 spring.data.mongodb.port는 Mongo 3.0 Java 드라이버를 사용하는 경우 지원되지 않습니다. 그러한 경우 spring.data.mongodb.uri를 사용하여 다음과 같이 모든 구성을 제공해야합니다.
Spring.data.mongodb.host 및 spring.data.mongodb.port는 Mongo 3.0 Java 드라이버를 사용하는 경우 지원되지 않습니다. 그러한 경우 spring.data.mongodb.uri를 사용하여 다음과 같이 모든 구성을 제공해야합니다.
spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345
-
==============================
4.AbstractMongoConfiguration을 확장하여 더 자세한 내용을 정의 할 수 있습니다.
AbstractMongoConfiguration을 확장하여 더 자세한 내용을 정의 할 수 있습니다.
@Configuration @EnableMongoRepositories("demo.mongo.model") public class SpringMongoConfig extends AbstractMongoConfiguration { @Value("${spring.profiles.active}") private String profileActive; @Value("${spring.application.name}") private String proAppName; @Value("${spring.data.mongodb.host}") private String mongoHost; @Value("${spring.data.mongodb.port}") private String mongoPort; @Value("${spring.data.mongodb.database}") private String mongoDB; @Override public MongoMappingContext mongoMappingContext() throws ClassNotFoundException { // TODO Auto-generated method stub return super.mongoMappingContext(); } @Override @Bean public Mongo mongo() throws Exception { return new MongoClient(mongoHost + ":" + mongoPort); } @Override protected String getDatabaseName() { // TODO Auto-generated method stub return mongoDB; } }
-
==============================
5.여기에 Spring Boot 2.0에서 MongoClient 커스텀을 생성함으로써 어떻게 할 수 있는가? Connection에 더 많은 컨트롤을 제공하고,
여기에 Spring Boot 2.0에서 MongoClient 커스텀을 생성함으로써 어떻게 할 수 있는가? Connection에 더 많은 컨트롤을 제공하고,
전체 소스 코드에 대한 github Link를 따르십시오.
@Configuration @EnableMongoRepositories(basePackages = { "com.frugalis.repository" }) @ComponentScan(basePackages = { "com.frugalis.*" }) @PropertySource("classpath:application.properties") public class MongoJPAConfig extends AbstractMongoConfiguration { @Value("${com.frugalis.mongo.database}") private String database; @Value("${com.frugalis.mongo.server}") private String host; @Value("${com.frugalis.mongo.port}") private String port; @Value("${com.frugalis.mongo.username}") private String username; @Value("${com.frugalis.mongo.password}") private String password; @Override protected String getDatabaseName() { return database; } @Override protected String getMappingBasePackage() { return "com.frugalis.entity.mongo"; } @Bean public MongoTemplate mongoTemplate() throws Exception { return new MongoTemplate(mongoClient(), getDatabaseName()); } @Override @Bean public MongoClient mongoClient() { List<MongoCredential> allCred = new ArrayList<MongoCredential>(); System.out.println("???????????????????"+username+" "+database+" "+password+" "+host+" "+port); allCred.add(MongoCredential.createCredential(username, database, password.toCharArray())); MongoClient client = new MongoClient((new ServerAddress(host, Integer.parseInt(port))), allCred); client.setWriteConcern(WriteConcern.ACKNOWLEDGED); return client; }}
from https://stackoverflow.com/questions/23515295/spring-boot-and-how-to-configure-connection-details-to-mongodb by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Apache Tomcat에서 apache cxf를 사용하여 프로젝트를 배포 할 수 없습니다. (0) | 2019.04.18 |
---|---|
[SPRING] 외부 속성 파일이 변경되면 스프링 값으로 부팅 할 때 속성 값을 다시로드합니다. (0) | 2019.04.18 |
[SPRING] Spring Boot Embedded tomcat에서 외부 정적 HTML 파일을 서비스하는 방법은? (0) | 2019.04.18 |
[SPRING] Spring에서 트랜잭션 일시 중지는 어떻게 작동합니까? (0) | 2019.04.18 |
[SPRING] Spring AOP로 Hibernate 세션 구성하기 (0) | 2019.04.18 |