Como ler o valor config.properties usando o escopo 'singleton' do Spring MVC em Java?
Publicados: 2018-08-29
Algum tempo atrás eu escrevi um tutorial sobre como ler o arquivo de configuração da maneira tradicional. Mas e se você quiser carregá-lo como um framework Spring MVC?
É mais comum que você precise acessar alguns de seus valores config.properties
o tempo todo em sua classe Java. Existe uma maneira simples de obtê-lo usando o escopo singleton do Spring MVC.
Por favor, dê uma olhada abaixo da imagem completa do espaço de trabalho.
Precisamos criar 4 arquivos:
- CrunchifySpringExample.java no pacote
com.crunchify.tutorial
- arquivo config.properties na pasta
/go/config/
- arquivo spring-bean.xml na pasta
/resources
- arquivo pom.xml (converter projeto para projeto Maven)

Vamos começar:
Passo 1
Crie um projeto da Web dinâmico chamado CrunchifyLoadPropertiesSpringMVC

Passo 2
Converter projeto para projeto Maven.
Isso criará o arquivo pom.xml
e adicionaremos as dependências do Spring.

Etapa 3
Criar arquivo 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 ) ; } } |
Passo 4
Aqui está meu arquivo 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 > |
Passo-5
Se você não vir a pasta “ resources
”. crie um.


Passo-6
Crie o arquivo config.properties
com o conteúdo abaixo.
1 2 3 4 |
# Crunchify Properties IS_THIS_SPRING_EXAMPLE = true SPRING_TUTORIAL = CRUNCHIFY_TUTORIAL CRUNCHIFY_URL = https : //crunchify.com |
Passo-7
Conteúdo do arquivo 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 > |
Passo-8
Agora execute CrunchifySpringExample.java
e você deverá ver um resultado como este.
Passo-9
Saída
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 |
Aproveite e boa codificação..