MongoDB에 액세스해야하므로 로컬 개발 환경은 MongoDB에 직접 연결할 수 없으므로 SecuRecrt를 통해 127.0.0.2 로컬 IP 프록시를 사용해야합니다. 그러나 프로그램이 온라인 제작 환경에 배치 된 후 MongoDB에 직접 액세스 할 수 있습니다. 따라서 프로그램을 개발 한 후에는 코드를 제출하기 전에 항상 MongoDB 서버의 IP를 수정해야합니다. 이는 매우 불편합니다.
개인 정적 최종 문자열 pubchat_host = "127.0.0.2"; // 개인 정적 최종 문자열 pubchat_host = "prod_mongo_server_ip";
Spring-Boot-Starter-Data-MongoDB는 사용되지 않지만 Mongo-Java-Driver를 사용하여 MongoDB에 액세스하기 위해 MongoDB에 액세스하기 위해 일부 구성을 정의해야합니다. 서버 주소, IP 포트, 데이터베이스 이름과 같은 MongoDB에 액세스 할 수있는 일부 구성이 필요합니다 ... 이러한 구성 정보의 정적 변수를 사용하여 구성 파일의 값이 저장됩니다. @configurationProperties를 통해 주입.
정적 도구 클래스 정의
속성은 정적입니다.
개인 정적 문자열 chat_username;
그런 다음 비 정적 세트 방법을 통해 주입하십시오.
@Value ( "$ {mongo.config.username}") public void setchat_username (String chat_username) {mongoconfig.chat_username = chat_username; }다른 클래스는 공개 정적 GET 메소드를 통해 속성을 얻습니다.
public static string getchat_username () {return chat_username; }접두사의 값은 application.yml에 정의됩니다
@ConfigurationProperties (prefix = "mongo.config") 공개 클래스 mongoconfig {.....전체 전체 코드는 다음과 같습니다.
import org.springframework.beans.beans.annotation.value; import org.springframework.boot.context.properties.configurationProperties; import org.springframework.stereotyp.component;/*** 2018/4/4. */@component (value = "mongoconfig")@configurationProperties (prefix = "mongo.config") public class mongoconfig {private static string chat_username; 개인 정적 문자열 chat_password; 개인 정적 문자열 chat_host; 개인 정적 int chat_port; 개인 정적 문자열 chat_dbname; 개인 정적 문자열 chat_collprefix; public static string getchat_username () {return chat_username; } @Value ( "$ {mongo.config.username}") public void setchat_username (String chat_username) {mongoconfig.chat_username = chat_username; } public static string getchat_password () {return chat_password; } @Value ( "$ {mongo.config.password}") public void setchat_password (String Chat_password) {mongoconfig.chat_password = chat_password; } public static string getchat_host () {return chat_host; } @Value ( "$ {mongo.config.host}") public void setchat_host (String chat_host) {mongoconfig.chat_host = chat_host; } public static int getchat_port () {return chat_port; } @Value ( "$ {mongo.config.port}") public static void setchat_port (int Chat_port) {mongoconfig.chat_port = chat_port; } public static string getchat_dbname () {return chat_dbname; } @Value ( "$ {mongo.config.dbname}") public void setchat_dbname (string chat_dbname) {mongoconfig.chat_dbname = chat_dbname; } public static string getchat_collprefix () {return chat_collprefix; } @Value ( "$ {mongo.config.collprefix}") public void setchat_collprefix (String chat_collprefix) {mongoconfig.chat_collprefix = chat_collprefix; }}YML 구성 파일 정의
프로필을 사용하여 다른 환경에서 사용할 다른 구성을 지정하십시오. Active는 DEV 또는 Prod와 같은 활성화 된 환경을 지정합니다.
Spring : Application : Name : Active : Dev ---- 스프링 : 프로파일 : dev, default, testmongo : config : "xxx"암호 : "xxx"호스트 : "127.0.0.2"포트 : 10001 dbname : "xxx"colprefix : "xxxx :--- prodmongo :"xxxx " "XXX"호스트 : "XXXX"포트 : 10001 DBNAME : "XXXX"COLPREFIX : "XXX"
시험
MongoDB 사용자 정의 구성이 사용되므로 @SpringBootApplication (exclude = mongoautoconfiguration.class)은 스프링 부츠와 함께 제공되는 MongoDB 구성을 제외하는 데 사용됩니다.
@SpringBootApplication (제외 = mongoautoconfiguration.class) 공개 클래스 응용 프로그램 {public static void main (string [] args) {springApplication.run (Application.class, args); System.out.println ( "-구성 값-사용자 이름 :" + mongoconfig.getchat_username ()); }}참조 : 스프링 부트 정적 변수 주입 구성 파일
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.