Si algunos parámetros en el proyecto deben modificarse con frecuencia, o es posible que deba modificarse más tarde, entonces es mejor colocar estos parámetros en el archivo de propiedades y leer la configuración en las propiedades en el código fuente. De esta manera, solo el archivo de propiedades debe modificarse más adelante, y no es necesario modificar el código fuente, que es más conveniente. Esto también se puede hacer en Spring, y Spring tiene dos formas de cargar archivos de propiedades: según el método XML y según el método de anotación . Los siguientes son los dos métodos.
1. Cargue el archivo de propiedades a través de XML
Tomemos la fuente de datos instanciada de Spring como ejemplo. Generalmente configuramos lo siguiente en el archivo frijoles.xml:
<!-com.mchange.v2.c3p0.combopooleddataSource La clase está en el paquete com.mchange.v2.c3p0 de C3P0-0-0.9.5.1.JAR PACPACK-> <Bean Id = "DataSource"> <Property Name = "DriverClass" Value = "Com.mysql.jdbc.Driver" /> <Property Name = "JDBCURL" valor = "jdbc: mysql: // localhost: 3306/shop"/> <propiedad name = "user" value = "root"/> <propiedad name = "contraseña" value = "root"/> </bean>
Ahora, si queremos cambiar la fuente de datos, tenemos que modificar estos códigos fuente, pero si usamos archivos de propiedades, solo necesitamos modificar el código fuente, y no nos importa el código fuente. Entonces, ¿cómo hacerlo?
Hay una etiqueta <context:property-placeholder location=""/> en Spring, que se puede usar para cargar archivos de configuración de propiedades. La ubicación es la ruta al archivo de configuración. Ahora creamos un nuevo archivo Conn.Properties en el SRC del directorio del proyecto y escribimos la configuración de plato de datos anterior:
dataSource = com.mchang.v2.c3p0.comBopooledDataSource DriverClass = com.mysql.jdbc.driver jdbcurl = jdbc/: mysql/: // localhost/: 3306/shop user = root = root = root = root = root = root = root = root = root = Root
Ahora solo necesita hacer las siguientes modificaciones en frijoles.xml:
<context: Property-placeholder ubicación = "classpath: conn.properties"/> <!-Cargando archivo de configuración-> <!-com.mchang.v2.c3p0.combopooleddataSource class está en el com.mchange.v2.c3p0 paquete de c3p0-0.9.5.1.Jar paquete-> <bean id = "dataseurce"> <<!-estas configuraciones se encuentran en conn. At inicio -> <propiedad name = "conductorclass" value = "$ {DriverClass}" /> <Property name = "jdbcurl" value = "$ {jdbcurl}" /> <propiedad name = "jdbcurl" valor = "$ {jdbcurl}" /> <name de propiedad de propiedad = "Nombre de propiedad =" Nombre de propiedad = "Contrase" value = "$ {contraseña}"/> </bean> <context: Property-placeholder ubicación = ""/> Las etiquetas también pueden ser reemplazadas por las siguientes etiquetas <Bean>. Estamos más familiarizados con las etiquetas <Bean> y somos más legibles: <!-equivalente a la configuración anterior, lo siguiente es más fácil de entender-> <Bean> <Property Name = "ubicaciones"> <!-Hay una propiedad de ubicaciones en la clase PropertyHolderConfigurer, que recibe una matriz, es, podemos asignar múltiples archivos de propiedades a continuación-> <Array> <al valor> </property> </le bean> Aunque parece ser tan conciso como el anterior <context:property-placeholder location=""/> , es más claro. Se recomienda usar el siguiente. Sin embargo, esto se limita a XML, es decir, use ${key} para obtener el valor en el archivo de configuración en frijoles.xml.
2. Cargue el archivo de propiedades a través de la anotación
Otra forma es usar la anotación @Value para cargar los valores en el archivo de configuración a través de la anotación.
Tomemos un ejemplo: si queremos obtener la ruta absoluta a un archivo determinado en el programa, naturalmente pensaremos que no podemos escribirlo muerto en el programa, entonces también podemos desinstalar el archivo de propiedades. O crear un nuevo archivo público.properties en el directorio SRC, suponiendo que un registro esté escrito en él:
FilePath = E/: //web//apache-tomcat-8.0.26//webapps//e_shop//image
Si desea obtener este FilePath a través de anotaciones en el código Java, primero debe configurar el método de anotación en el archivo beans.xml:
< También tiene una propiedad de ubicaciones y también recibe una matriz, al igual que la anterior <Antray> <Value> classpath: public.properties </value> </array> </property> </bean>
Ahora podemos usar anotaciones en el código Java para obtener el valor de FilePath:
@Component ("FileUpload") clase pública FileUploadUtil implementa FileUpload {private String filePath; @Value ("#{Prop.FilePath}") //@Value significa encontrar el bean con id = "proping" en el archivo beans.xml. Se lee el archivo de configuración de propiedades a través de la anotación, y luego lee el valor del valor correspondiente de Key = FilePath en el archivo de configuración correspondiente public void setFilePath (string filepath) {system.out.println (filePath); this.filepath = filepath; }Tenga en cuenta que debe inyectarse un método establecido, y la anotación se puede escribir en el método establecido. En el método SetFilePath, el FilePath se imprime a través de la consola para observar si la consola tiene salida al comenzar TomCat. Si es así, significa que Spring ha cargado el FilePath cuando se inicia. Echemos un vistazo a la información de inicio de la consola:
Los anteriores son dos formas en que Spring carga los archivos de configuración de propiedades. De hecho, la clase PropertyPlaceHolderConfigurer anterior en función del método XML y la clase PropertyFactoryBean aquí en función del método de anotación, ambos heredan PropertiesLoaderSupport y se utilizan para cargar el archivo de configuración de propiedades.
Resumir
Lo anterior es una explicación detallada de los dos ejemplos de archivos de propiedades de carga de resorte introducidos por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!