O Micro-Framework Spring-Boot tem sido muito popular recentemente. O autor também seguiu a tendência e não disse mais nada. Agora vou dar um exemplo de leitura de arquivos de configuração.
Primeiro, você precisa confiar no seguinte pacote JAR no arquivo POM
<Dependences> <pendency> <voundiD> org.springframework.boot </groupiD> <TRATIFACTID> Spring-boot-starter-web </artifactId> </dependency> <pendence-> SCROTIDED-SCROOT.SpringFramework.boot </GroupId> <TifactId> SCROOT-STARTERFERT-TELTR-TEMBRO-TEMBRO-TRESTRO-TRANHOTWOOT </Groupid> </dependency> </dependências>
Em segundo lugar, precisamos de uma aula de inicialização da Spring-Boot
@SpringbooTApplication @enableConfigurationProperties ({PropSconfig.class, ymlconfig.class}) classe public ReadApplication {public static void main (string [] args) {springApplication.run (readApplication.class, args); }}É isso mesmo, o PropSconfig.class e o ymlconfig.class apontaram na anotação @enableConfigurationproperties são classes que lêem arquivos de configuração de adereços e YML, respectivamente. Em seguida, implementaremos a implementação específica das propriedades de leitura e arquivos de configuração YML, respectivamente.
1. Leia o arquivo de configuração de propriedades
Coloque um arquivo Application.Properties sob o ClassPath, com o conteúdo geral da seguinte forma:
master.ds.driverclassName = com.mysql.jdbc.driver Master.ds.url = jdbc: mysql: // localhost: 3306/teste mestre.ds.UserName = root Master.Ds.Pass.Initials = Master.ds.filters = stat.ds.ds.DS.MaxActive = 20 Master.ds.ds.Initials = Master.ds.filters = stat.ds.ds.ds.mAxt.MAit.ds.ds.Initials.Initiais master.ds.minIdle=10 master.ds.timeBetweenEvictionRunsMillis=60000 master.ds.minEvictableIdleTimeMillis=3000000 master.ds.validationQuery=SELECT 'x' master.ds.testWhileIdle=true master.ds.testOnBorrow=false master.ds.testOnReturn=false master.ds.poolPreparedStatements=true Master.Ds.MaxopeNPreparedStatements = 100 Master.Ds.Removeabandon = True Master.ds.RemoveabandEnedTimeout = 1800 Master.Ds.Logabandoned = true
A leitura da classe de configuração de adereços é muito simples. É basicamente uma classe Pojo/VO e apenas carregue a anotação @configurationproperties na classe.
@ConfigurationProperties (prefix = "Master.ds", Locations = "ClassPath: Application.Properties") Classe public PropSconfig {private String driverClassName; URL privado de string; Nome de usuário privado de string; senha de sequência privada; filtros de string privada; String privada maxativa; String privada Initialsize; String privada Maxwait; public String getDriverClassName () {return driverClassName; } public void setDriverClassName (string driverClassName) {this.driverclassName = driverclassName; } public string geturl () {return url; } public void Seturl (String url) {this.url = url; } public string getUserName () {return userName; } public void setUserName (string userName) {this.username = nome de usuário; } public string getPassword () {return senha; } public void setPassword (string) senha) {this.password = senha; } public String getFilters () {retornar filtros; } public void setFilters (String filters) {this.filters = filters; } public string getMaxactive () {return maxactive; } public void setMaxActive (String maxactive) {this.maxactive = maxactive; } public string getInitialSize () {return InitialSize; } public void setInitialSize (string InitialSize) {this.initialSize = InitialSize; } public string getMaxWait () {return maxwait; } public void setMaxWait (String maxwait) {this.maxwait = maxwait; }} Classe de teste de unidade
@Runwith (springjunit4classrunner.class) @springboottest (classes = readapplication.class) classe pública ReadApplicationPropstests {@AUTOWIRED PROPSCONFIG PROPSCONFIG; @Test public void testDisplayPropsValue () {String driverclassName = PropSconfig.getDriverClassName (); String url = propSconfig.geturl (); String userName = PropSconfig.getUserName (); String senha = PropSconfig.getpassword (); String filters = PropSconfig.getFilters (); String maxactive = PropSconfig.getMaxActive (); String InitialSize = PropSconfig.getInitialSize (); String maxwait = propsconfig.getmaxwait (); System.out.println ("DriverClassName ->" + DriverClassName); System.out.println ("url ->" + url); System.out.println ("Nome de usuário ->" + nome de usuário); System.out.println ("senha ->" + senha); System.out.println ("InitialSize ->" + InitialSize); System.out.println ("maxwait ->" + maxwait); }}Você pode ver a saída de conteúdo de teste no console:
driverclassName -> com.mysql.jdbc.driver URL -> JDBC: mysql: // localhost: 3306/teste nome de usuário -> senha raiz -> raiz InitialSize -> 1 maxwait -> 60000
2. Leia o arquivo de configuração YML
Coloque um arquivo Application.yml sob o ClassPath, com o conteúdo geral da seguinte maneira:
myProps: #Custom properties and values simpleProp: simplePropValue arrayProps: 1,2,3,4,5 listProp1: - name: abc value: abcValue - name: efg value: efgValue listProp2: - config2Value1 - config2Vavlue2 mapProps: key1: value1 key2: value2
Leia a classe do arquivo de configuração YML.
@ConfigurationProperties (prefix = "myProps") // Propriedades no myProps no application.yml public class YMLConfig {private String SimpleProp; Private String [] ArrayProps; Lista privada <map <string, string >> listProp1 = new ArrayList <> (); // Receba valores de atributo na lista privada Prop1 <string> listProp2 = new ArrayList <> (); // Receba valores de atributo no mapa privado Prop2 <string, string> mapprops = new hashmap <> (); // Receba o valor do atributo no Prop1 public string getSImpleProp () {return simplesProp; } public void SetsImpleProp (String SimpleProp) {this.simpleProp = SimpleProp; } Lista pública <map <string, string >> getListProp1 () {return listProp1; } list public <string> getListProp2 () {return listProp2; } public string [] getArrayProps () {return ArrayProps; } public void SetArrayProps (String [] ArrayProps) {this.arrayProps = ArrayProps; } mapa public <string, string> getMapprops () {return mapprops; } public void setMapprops (map <string, string> mapprops) {this.mapprops = mapprops; }} Classe de teste de unidade
@Runwith (springjunit4classrunner.class) @springboottest (classes = readapplication.class) classe public reedapplicationymLtests {@aUTowired private ymlConfig ymlConfig; @Test public void testDisplayymlValue () lança jsonProcessingException {System.out.println ("SimpleProp:" + ymlconfig.getSimpleProp ()); ObjectMapper ObjectMapper = new ObjecjotMapper (); System.out.println ("ArrayProps:" + objectMapper.WriteValuEasString (ymlconfig.getArrayProps ())); System.out.println ("listProp1:" + objectMapper.WriteValuEasString (ymlconfig.getListProp1 ())); System.out.println ("listProp2:" + objectMapper.WriteValuEasString (ymlconfig.getListProp2 ()); System.out.println ("mapprops:" + objectMapper.WriteValuEasString (ymlconfig.getMapprops ())); }} Você pode ver a saída de conteúdo de teste no console:
simpleProp: simplePropValue arrayProps: ["1","2","3","4","5"] listProp1: [{"name":"abc","value":"abcValue"},{"name":"efg","value":"efgValue"}] listProp2: ["config2Value1","config2Vavlue2"] MAPPROPS: {"key1": "value1", "key2": "value2"} Não é incrível? Ele pode ser executado sem problemas sem o arquivo ApplicationContext.xml da Spring.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.