Tomcat:9 JDK:OpenJDK8(OPENJ9) spring-boot:2.0.5
C'est le fichier de configuration que vous voulez lire ↓ ↓ ↓
[Racine du projet]/src/main/resources/test.yml
value:
item1:
aaa: 12345
bbb: 22345
item2:
dog: poti
cat: tama
Ceci est la description Java ↓ ↓ ↓
xxxxx.java
DefaultResourceLoader resourceLoader;
InputStreamReader reader;
try {
resourceLoader = new DefaultResourceLoader();
Resource resource = resourceLoader.getResource("classpath:test.yml");
reader = new InputStreamReader(resource.getInputStream());
Yaml yaml = new Yaml();
map = (Map<String, Object>) yaml.load(reader);
System.out.println(ValueMap.toString());
} catch (Exception e) {
e.printStackTrace();
}
J'ai pensé que je devrais utiliser ResourceLoader, et initialement
@Autowired
ResourceLoader resourceLoader;
J'ai essayé la déclaration, mais elle a échoué avec NullPointerException, probablement parce que l'annotation Autowired ne fonctionne pas. Donc, je l'ai obtenu en utilisant la classe DefaultResourceLoader, qui est une méthode de force méchante ou brute.
`` * Ce processus fonctionnait en eclipse dans l'environnement de développement, mais quand je l'ai mis dans War et l'ai placé dans Tomcat, il a cessé de fonctionner probablement parce que la structure des répertoires a changé. ''
C'est le fichier de configuration que vous voulez lire ↓ ↓ ↓
[Racine du projet]/src/main/resources/test.yml
value:
item1:
aaa: 12345
bbb: 22345
item2:
dog: poti
cat: tama
Ceci est la description Java ↓ ↓ ↓
xxxxx.java
InputStreamReader reader;
try {
reader = new InputStreamReader(ClassLoader.getSystemResourceAsStream("test.yml"));
Yaml yaml = new Yaml();
Map<String, String> ValueMap = (Map<String, String>) yaml.load(reader);
System.out.println(ValueMap.toString());
} catch (Exception e) {
e.printStackTrace();
}
Le contenu défini dans ValueMap ressemble à ceci ↓ ↓ ↓
J'ai pu l'obtenir comme ça.
J'ai pu l'obtenir sous la forme ci-dessus, alors quand j'ai pensé "Quelle guerre dois-je utiliser?"
Recommended Posts