프로젝트의 일부 매개 변수를 자주 수정해야하거나 나중에 수정해야 할 경우이 매개 변수를 속성 파일에 넣고 소스 코드의 속성의 구성을 읽는 것이 가장 좋습니다. 이러한 방식으로, 속성 파일 만 나중에 수정해야하며, 소스 코드를 수정할 필요가 없으며, 이는 더 편리합니다. 이는 봄에도 수행 할 수 있으며 Spring에는 XML 방법을 기반으로 및 주석 방법을 기반으로 속성 파일을로드하는 두 가지 방법이 있습니다. 다음은 두 가지 방법입니다.
1. XML을 통해 속성 파일로드
Spring Instantantiated DataSource를 예로 들어 봅시다. 우리는 일반적으로 beans.xml 파일에서 다음을 구성합니다.
<!-com.mchange.v2.c3p0.combopooleddatasource 클래스는 c3p0-0.9.5.1.jar 패키지의 com.mchange.v2.c3p0 패키지에 있습니다.> <bean id = "dataSource"> <property name = "driverclass"value = "com.mysql.jdbc.driver" /> <property name = "jdbcurl" value = "jdbc : mysql : // localhost : 3306/shop"/> <property name = "user"value = "root"/> <property name = "password"vale = "root"/> </bean>
이제 데이터 소스를 변경하려면 이러한 소스 코드를 수정해야하지만 속성 파일을 사용하는 경우 소스 코드 만 수정하면 소스 코드에 신경 쓰지 않습니다. 그래서 어떻게해야합니까?
<context:property-placeholder location=""/> 태그가 있으며, 이는 구성 파일을로드하는 데 사용할 수 있습니다. 위치는 구성 파일의 경로입니다. 이제 프로젝트 디렉토리의 SRC에 새 Conn.Properties 파일을 생성하고 위의 데이터 소스 구성을 작성합니다.
DataSource = com.mchange.v2.c3p0.combopooleddatasource driverclass = com.mysql.jdbc.driver jdbcurl = jdbc/: mysql/: // localhost/: 3306/shop user = root password = root
이제 Beans.xml에서 다음과 같은 수정 만하면됩니다.
<context : property-placeholder location = "classpath : conn.properties"/> <!-구성 파일로드-> <!-com.mchange.v2.c3p0.combopooledDatasource 클래스에 있습니다 .V2.c3p0 C3P0-0.9.5.1.5.1.JAR 패키지의 패키지에 있습니다. startup에서 conn.properties-> <property name = "driver class"value = "$ {driverclass}" /> <property name = "jdbcurl"value = "$ {jdbcurl}" /> <property name = "jdbcurl"value = "$ {jdbcurl}" />} value = "$ {password}"/> </bean> <context : property-placeholder location = ""/> 태그도 다음 <aun> 태그로 대체 할 수 있습니다. 우리는 <ean> 태그에 더 익숙하고 더 읽기 쉽습니다 : <!-위 구성과 동등한 다음, 다음은 이해하기 쉽습니다-> <ean bean> <property name = "locations"> <!-PropertyPlaceHolderConfiger 클래스에 위치가 있습니다. </property> </bean> 위의 <context:property-placeholder location=""/> 만큼 간결한 것 같습니다. 다음을 사용하는 것이 좋습니다. 그러나 이것은 XML로 제한됩니다. 즉, ${key} 사용하여 beans.xml의 구성 파일에서 값을 얻습니다.
2. 주석을 통해 속성 파일을로드합니다
또 다른 방법은 @Value 주석을 사용하여 주석을 통해 구성 파일의 값을로드하는 것입니다.
예를 들어 봅시다 : 프로그램의 특정 파일에 대한 절대 경로를 얻으려면 자연스럽게 프로그램에서 죽은 것을 쓸 수 없다고 생각하면 속성 파일을 제거 할 수도 있습니다. 또는 레코드가 작성되었다고 가정 할 때 SRC 디렉토리에 새 public.properties 파일을 작성하십시오.
filepath = e/: //web//apache-tomcat-8.0.0.0.26//webapps//e_shop//image
Java 코드의 주석을 통해이 FilePath를 얻으려면 먼저 Beans.xml 파일에서 주석 메소드를 구성해야합니다.
<!-두 번째 방법은 주석 주입을 사용하는 것인데, 주로 Java 코드에서 주로 사용하여 주석을 사용하여 속성 파일에 해당 값 값을 주입하는 것입니다 .-> <bean id = "prop"> <property name = "locations"> <!-이것은 propertiesfactorybean 클래스입니다. 또한 위치 속성이 있으며 위의 <atray> <alue> classpath : public.properties </value> </array> </property> </bean>과 마찬가지로 배열도 수신됩니다.
이제 Java 코드에서 주석을 사용하여 FilePath의 값을 얻을 수 있습니다.
@Component ( "FileUpload") public class fileUploadUtil은 fileUpload {private String filepath; @Value ( "#{prop.filepath}") // value는 beans.xml 파일에서 id = "prop"로 bean을 찾는 것을 의미합니다. 주석을 통해 속성 구성 파일을 읽은 다음 해당 구성 파일에서 key = filepath의 해당 값 값을 읽습니다. public void setfilepath (string filepath) {System.out.println (FilePath); this.filepath = filepath; }주사해야 할 설정 방법이 있어야하며 주석을 세트 메소드에 작성할 수 있습니다. SetFilePath 메소드에서 FilePath는 콘솔을 통해 인쇄되어 Tomcat을 시작할 때 콘솔에 출력이 있는지 관찰합니다. 그렇다면 스프링이 시작될 때 FilePath를로드했음을 의미합니다. 콘솔의 시작 정보를 살펴 보겠습니다.
위는 스프링로드 속성 구성 파일의 두 가지 방법입니다. 실제로, XML 메소드와 주석이있는 메소드를 기반으로하는 PropertyPlaceHolderConfigurer 클래스는 PropertiesloadersUpport를 상속하고 속성 구성 파일을로드하는 데 사용됩니다.
요약
위는 편집기가 소개 한 스프링 로딩 속성 파일의 두 가지 예에 대한 자세한 설명입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!