[JAVA] Mettez le fichier dans les propriétés de string avec la configuration spring xml

La configuration java est normale de nos jours, donc je n'ai pas beaucoup de problèmes. Par exemple, supposons que vous écriviez spring-batch en xml et que vous souhaitiez définir la propriété sql sur la chaîne SQL envoyée au fichier.

FileCopyUtils [java --Comment charger une ressource et utiliser son contenu sous forme de chaîne dans Spring --Stack Overflow](https://stackoverflow.com/questions/14022839/how-do-i-load-a-resource-and-use -son-contenu-comme-une-chaîne-au-printemps)

	<bean id="sql" class="java.lang.String">
		<constructor-arg>
			<bean class="org.springframework.util.FileCopyUtils"
				factory-method="copyToByteArray">
				<constructor-arg value="classpath:a.txt"
					type="java.io.InputStream" />
			</bean>
		</constructor-arg>
	</bean>

Créer une classe qui lit dans un fichier et renvoie une chaîne

Ce qui précède est tout complété avec XML, mais cela semble être un peu long. Alors, pensez à faire votre propre haricot qui fait juste cela.

import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.util.stream.Collectors;

import org.springframework.util.ResourceUtils;

public class ResourceToStringUtils {
	
	public String to(String location) throws IOException {
                ApplicationContext ctx = ...;
                BufferedReader in
                    = new BufferedReader(new InputStreamReader(resource.getInputStream(), Charset.defaultCharset()));
                return = in.lines().collect(Collectors.joining(System.lineSeparator()));

                // 2017/0/02 Addendum J'avais l'habitude d'écrire comme ci-dessous, mais en fonction de l'environnement, FileNotFoundException se produira.
                //Les détails seront écrits séparément. peut être.
                //File file = ResourceUtils.getFile(location);
                //return Files.lines(file.toPath(), Charset.defaultCharset()).collect(Collectors.joining(System.lineSeparator()));


	}
}

Créez une classe qui reçoit l'emplacement du ressort, lit tout le contenu du fichier, le convertit en une chaîne et le renvoie.

<bean id="resourceToStringUtils"
  class="kagamihoge.hogehoge.ResourceToStringUtils"></bean>

...
<property name="p" value="#{resourceToStringUtils.to('file:hoge.txt')}"></property>
...
<property name="p" value="#{resourceToStringUtils.to('classpath:foo.sql')}"></property>

Recommended Posts

Mettez le fichier dans les propriétés de string avec la configuration spring xml
Comment définir des variables d'environnement dans le fichier de propriétés de l'application Spring Boot
Remplacez la définition du bean dans le fichier de configuration spring xml par un autre xml
Étapes pour rendre Spring Boot capable de faire référence à la valeur dans le fichier de propriétés
L'histoire de la comparaison de chaînes de bas niveau en Java
Spécifiez le codage des ressources statiques dans Spring Boot
Accédez au fichier war dans le répertoire racine de Tomcat
[Pour les débutants] DI ~ Les bases de DI et DI au printemps ~
[Java] Récupère le fichier dans le fichier jar quel que soit l'environnement
Lorsque je suis passé à IntelliJ, il y avait une grande différence dans l'encodage du fichier de propriétés.
Accéder dynamiquement à la propriété spécifiée par la chaîne dans Spring BeanWrapper
Exemple de configuration d'API RESTful minimum avec Jersey + Spring Framework
Pourquoi insérer un saut de ligne à la fin du fichier
Obtenez une instance proxy du composant lui-même dans Spring Boot
Mettez la date (par exemple aaaa-MM-jj) dans la sortie du fichier journal par logback
Lisez le fichier sous le chemin de classe sous forme de chaîne de caractères avec ressort
Fixez le nom du fichier de guerre à celui défini dans Maven
La validation de printemps était importante dans l'ordre de Form et BindingResult
Obtenez l'URL publique du fichier privé de Flickr en Java
Formulaire qui reçoit la valeur de l'élément répétitif dans Spring MVC
Comment obtenir la longueur d'un fichier audio avec Java
Remplacez le contenu du fichier Jar
Lire le fichier de propriétés Java en C #
Décompressez le fichier zip en Java
Diverses méthodes de la classe String
Ordre de traitement dans le programme
J'ai lu la source de String
Filtrer le résultat de BindingResult [Spring]
[Spring Boot] Liste des règles de validation qui peuvent être utilisées dans le fichier de propriétés pour les messages d'erreur
`SAXReader`: Obtenez le fichier xml avec l'espace de noms par défaut défini au format XPath
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Examiner le contenu du fichier WAR généré par le projet créé par Spring Initializr
Exemple de programme qui renvoie la valeur de hachage d'un fichier en Java
Décrypter le bean entier dans un fichier de propriétés avec certaines valeurs cryptées
L'histoire de la rencontre avec l'annotation personnalisée Spring
Obtenez le résultat de POST en Java
L'identité des paramètres de rails [: id]
Priorité d'accès aux fichiers statiques dans Spring Boot
Mémorandum de téléchargement de fichier local avec Spring Boot
À propos de l'affichage initial de Spring Framework
Notation pour mettre des variables dans une chaîne
L'histoire de l'écriture de Java dans Emacs
Java: placez le fichier de propriétés ResourceBundle n'importe où
Point 63: Méfiez-vous des performances de la concaténation de chaînes
[Java] [Spring] Tester le comportement de l'enregistreur
Problème de configuration Maven avec Spring pom.xml dans Eclipse
Ecrire le mouvement de Rakefile dans le runbook
Bean de sortie au format JSON au printemps
Comparaison de chaînes de caractères: j'ai été pris dans le problème de vérification des compétences de Paisa
Comment vérifier la dernière version de io.spring.platform pour l'écriture dans pom.xml de Spring (STS)
Organisez les différences de comportement de @NotBlank, @NotEmpty et @NotNull avec Spring Boot + Thymeleaf
[Spring Boot] Comment obtenir des propriétés dynamiquement à partir d'une chaîne contenue dans une URL
Obtenez le chemin défini dans la classe Controller de Spring Boot sous forme de liste
Le nom du fichier joint a été déformé dans le courrier de Spring Boot, donc des contre-mesures
Je veux trouver la somme de contrôle MD5 d'un fichier en Java et obtenir le résultat sous forme de chaîne de caractères en notation hexadécimale.