Le Spring-Boot micro-framework a été très populaire récemment. L'auteur a également suivi la tendance et n'a rien dit de plus. Je vais maintenant donner un exemple de lecture de fichiers de configuration.
Tout d'abord, vous devez compter sur le package JAR suivant dans le fichier POM
<Dependances> <Dependency> <GroupId> org.springFramework.boot </rom grouped> <Artifactid> printemps-boot-starter-web </retifactid> </dependency> <pedidency> <proupId> org.springframework.boot </proupId> <Artifactid> Spring-Boot-starter-test </letifactive> <scope> SPOPET> SPOPET> Boot-starter-test </partifactive> <scope> SCOPETE> SPOPET> </dpendance> </dpendances>
Deuxièmement, nous avons besoin d'une classe de démarrage de Spring-Boot
@Springbootapplication @enableConfigurationProperties ({propsconfig.class, ymlconfig.class}) public class readApplication {public static void main (string [] args) {springApplication.Run (readApplication.class, args); }}C'est vrai, le propsconfig.class et ymlconfig.class indiqué dans l'annotation @enableConfigurationProperties sont des classes qui lisent respectivement les accessoires et les fichiers de configuration YML. Ensuite, nous implémenterons respectivement l'implémentation spécifique des propriétés de lecture et des fichiers de configuration YML.
1. Lire le fichier de configuration des propriétés
Placez un fichier application.properties sous le chemin de classe, avec le contenu général comme suit:
maître.ds.driverclassname = com.mysql.jdbc.driver Master.ds.url = jdbc: mysql: // localhost: 3306 / test maître.ds.usename = root maître.ds.password = root maître.ds.filters = stat master.ds.maxactive = 20 master.ds.innitiasize = 1 maître.Dés.maxwait = 6000000 Master.ds.minidle = 10 Master.ds.TimeBetweenvictionRunsmillis = 60000 Master.ds.MineVictableIdleMemillis = 3000000 Master.ds.ValidationQuery = SELECT 'X' Master.DS.Test WhiteIdle = True Master.S.TestonBorrow = False Master.ds.Testonreturn = False Master.DS.PoolPreadStatres = TruePares = TruePares = TruePares = TruePares = TruePaERS = TruePares = TruePaERS = TruePares = TruePares = TruePaERS = TruePares) Master.ds.maxOpenPreparedStatements = 100 Master.ds.RemoveAbandoned = True Master.ds.RemoveAbandOnedTimeout = 1800 Master.ds.Logabandoned = True
La lecture de la classe de configuration des accessoires est très simple. Il s'agit essentiellement d'une classe Pojo / VO, et chargez simplement l'annotation @configurationproperties sur la classe.
@Configurationproperties (prefix = "maître.ds", locations = "classpath: application.properties") public class propsconfig {private String DriverClassName; URL de chaîne privée; Nom d'utilisateur de chaîne privée; mot de passe de chaîne privé; filtres à chaîne privées; chaîne privée Maxactive; chaîne privée InitialSize; chaîne privée 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 = username; } public String getPassword () {return mot de passe; } public void setPassword (string) mot de passe) {this.password = mot de passe; } public String getFilters () {return filtres; } public void setFilters (filtres de chaîne) {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 test unitaire
@Runwith (springjunit4classrunner.class) @springboottest (classes = readApplication.class) public class readApplicationPropstests {@autowired Private propsconfig propsconfig; @Test public void testDisplayPropsValue () {String DriverClassName = PropSConfig.getDriverClassName (); String url = propsconfig.getUrl (); String username = propsconfig.getUsername (); String mot de passe = 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 ("nom d'utilisateur ->" + nom d'utilisateur); System.out.println ("mot de passe ->" + mot de passe); System.out.println ("initialSize ->" + initialSize); System.out.println ("Maxwait ->" + Maxwait); }}Vous pouvez voir la sortie du contenu de test dans la console:
DriverClassName -> com.mysql.jdbc.driver URL -> jdbc: mysql: // localhost: 3306 / test username -> mot de passe racine -> root initialSize -> 1 maxwait -> 6000000
2. Lisez le fichier de configuration YML
Placez un fichier application.yml sous le chemin de classe, avec le contenu général comme suit:
MyProps: #Custom Properties and Values SimpleProp: SimplePropValue ArrayProps: 1,2,3,4,5 ListProp1: - Nom: ABC Value: ABCValue - Name: EFG Valeur: EfgValue ListProp2: - Config2Value1 - config2VavLue2 MAPPROPS: KEY1: Value1 Key2: Value2
Lisez la classe du fichier de configuration YML.
@ConfigurationProperties (prefix = "myProps") // Propriétés sous myProps dans application.yml public class ymlconfig {private String Simpleprop; chaîne privée [] ArrayProps; Liste privée <map <string, string >> listProp1 = new ArrayList <> (); // Recevoir des valeurs d'attribut dans la liste privée Prop1 <string> listProp2 = new ArrayList <> (); // Recevoir des valeurs d'attribut dans Prop2 Private Map <String, String> Mapprops = new HashMap <> (); // Recevez la valeur d'attribut dans Prop1 public String getsImpleprop () {return simpleprop; } public void setSimpleprop (String Simpleprop) {this.simpleprop = SimpleProp; } public list <map <string, string >> getListProp1 () {return listProp1; } public list <string> getListProp2 () {return listProp2; } public String [] getArrayProps () {return ArrayProps; } public void setArrayProps (string [] arrayprops) {this.arrayprops = arrayProps; } public map <string, string> getMapprops () {return mapprops; } public void setMapprops (map <string, string> mapprops) {this.mapprops = mapprops; }} Classe de test unitaire
@Runwith (springjunit4classrunner.class) @springboottest (classes = readApplication.class) public class readApplicationyMltests {@autowired private ymlconfig ymlconfig; @Test public void testDisplayyMlValue () lève JSONProcessingException {System.out.println ("SimpleProp:" + ymlconfig.getSimpleprop ()); ObjectMapper objectMapper = new ObjectMapper (); 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 ())); }} Vous pouvez voir la sortie du contenu de test dans la 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'est-ce pas incroyable? Il peut s'exécuter en douceur sans le fichier ApplicationContext.xml de Spring.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.