¿Cómo leer el valor de config.properties usando Spring MVC 'singleton' Scope en Java?
Publicado: 2018-08-29
Hace algún tiempo escribí un tutorial sobre cómo leer el archivo de configuración de manera tradicional. Pero, ¿qué sucede si desea cargarlo como un marco Spring MVC?
Es más común que necesite acceder a algunos de sus valores de config.properties
todo el tiempo en su clase de Java. Hay una manera simple de obtenerlo usando el alcance singleton de Spring MVC.
Eche un vistazo a la imagen completa del espacio de trabajo a continuación.
Necesitamos crear 4 archivos:
- CrunchifySpringExample.java en el paquete
com.crunchify.tutorial
- archivo config.properties en la carpeta
/go/config/
- archivo spring-bean.xml en la carpeta
/resources
- archivo pom.xml (convertir proyecto a proyecto Maven)

Empecemos:
Paso 1
Cree un proyecto web dinámico llamado CrunchifyLoadPropertiesSpringMVC

Paso 2
Convertir proyecto a Proyecto Maven.
Esto creará el archivo pom.xml
y agregaremos las dependencias de Spring.

Paso 3
Crear archivo CrunchifySpringExample.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
package com . crunchify . tutorial ; import org . springframework . beans . factory . annotation . Autowired ; import org . springframework . beans . factory . annotation . Value ; import org . springframework . context . annotation . Scope ; import org . springframework . context . support . ClassPathXmlApplicationContext ; import org . springframework . stereotype . Component ; /** * * @author Crunchify.com */ @Component ( "crunchifySpringExample" ) @Scope ( "singleton" ) public class CrunchifySpringExample { private static boolean springExample ; private static String springTutorial ; private static String url ; @Autowired public CrunchifySpringExample ( @Value ( "${CRUNCHIFY_URL}" ) String url , @Value ( "${SPRING_TUTORIAL}" ) String springTutorial , @Value ( "${IS_THIS_SPRING_EXAMPLE}" ) boolean springExample ) { CrunchifySpringExample . springExample = springExample ; CrunchifySpringExample . springTutorial = springTutorial ; CrunchifySpringExample . url = url ; } @SuppressWarnings ( { "resource" , "unused" } ) public static void main ( String [ ] args ) { try { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext ( new String [ ] { "spring-bean.xml" } ) ; } catch ( Throwable e ) { System . out . println ( e ) ; } System . out . println ( "\nLoading Properties from Config File during application startup: \n\nSPRING_TUTORIAL: " + springTutorial ) ; System . out . println ( "IS_THIS_SPRING_EXAMPLE: " + springExample ) ; System . out . println ( "CRUNCHIFY_URL: " + url ) ; } } |
Etapa 4
Aquí está mi archivo pom.xml
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0.0 < / modelVersion > < groupId > CrunchifyLoadPropertiesSpringMVC < / groupId > < artifactId > CrunchifyLoadPropertiesSpringMVC < / artifactId > < version > 0.0.1 - SNAPSHOT < / version > < packaging > war < / packaging > < name > CrunchifyLoadPropertiesSpringMVC < / name > < build > < sourceDirectory > src < / sourceDirectory > < plugins > < plugin > < artifactId > maven - compiler - plugin < / artifactId > < version > 3.1 < / version > < configuration > < source > 1.7 < / source > < target > 1.7 < / target > < / configuration > < / plugin > < plugin > < artifactId > maven - war - plugin < / artifactId > < version > 2.3 < / version > < configuration > < warSourceDirectory > WebContent < / warSourceDirectory > < failOnMissingWebXml > false < / failOnMissingWebXml > < / configuration > < / plugin > < / plugins > < / build > < properties > < project . build . sourceEncoding > UTF - 8 < / project . build . sourceEncoding > < spring . version > 4.0.2.RELEASE < / spring . version > < / properties > < dependencies > < ! -- Spring base -- > < dependency > < groupId > org . springframework < / groupId > < artifactId > spring - aop < / artifactId > < version > $ { spring . version } < / version > < exclusions > < exclusion > < groupId > commons - logging < / groupId > < artifactId > commons - logging < / artifactId > < / exclusion > < / exclusions > < / dependency > < ! -- Spring MVC -- > < dependency > < groupId > org . springframework < / groupId > < artifactId > spring - webmvc < / artifactId > < version > $ { spring . version } < / version > < / dependency > < dependency > < groupId > org . springframework < / groupId > < artifactId > spring - web < / artifactId > < version > $ { spring . version } < / version > < / dependency > < dependency > < groupId > commons - logging < / groupId > < artifactId > commons - logging < / artifactId > < version > 1.1.1 < / version > < / dependency > < / dependencies > < / project > |
Paso-5
Si no ve la carpeta " resources
". crea uno.


Paso-6
Cree el archivo config.properties
con los siguientes contenidos.
1 2 3 4 |
# Crunchify Properties IS_THIS_SPRING_EXAMPLE = true SPRING_TUTORIAL = CRUNCHIFY_TUTORIAL CRUNCHIFY_URL = https : //crunchify.com |
Paso-7
Contenido del archivo spring-bean.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<? xml version = "1.0" encoding = "UTF-8" ?> < beans xmlns = "http://www.springframework.org/schema/beans" xmlns : util = "http://www.springframework.org/schema/util" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns : context = "http://www.springframework.org/schema/context" xsi : schemaLocation = " http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd" > < util : properties id = "nodeProperty" location = "classpath:config/config.properties" / > < context : property - placeholder properties - ref = "nodeProperty" / > < context : component - scan base - package = "com.crunchify.tutorial" / > < / beans > |
Paso-8
Ahora ejecute CrunchifySpringExample.java
y debería ver un resultado como este.
Paso-9
Producción
1 2 3 4 5 6 7 8 9 10 11 12 |
Jul 05 , 2014 3 : 38 : 52 PM org . springframework . context . support . AbstractApplicationContext prepareRefresh INFO : Refreshing org . springframework . context . support . ClassPathXmlApplicationContext @ 7e3bfb66 : startup date [ Sat Jul 05 15 : 38 : 52 CDT 2014 ] ; root of context hierarchy Jul 05 , 2014 3 : 38 : 52 PM org . springframework . beans . factory . xml . XmlBeanDefinitionReader loadBeanDefinitions INFO : Loading XML bean definitions from class path resource [ spring - bean . xml ] Jul 05 , 2014 3 : 38 : 52 PM org . springframework . core . io . support . PropertiesLoaderSupport loadProperties INFO : Loading properties file from class path resource [ config / config . properties ] Loading Properties from Config File during application startup : SPRING_TUTORIAL : CRUNCHIFY_TUTORIAL IS_THIS_SPRING_EXAMPLE : true CRUNCHIFY_URL : https : //crunchify.com |
Disfrute y feliz codificación ..