


La configuration Apache Commons lit la configuration XML
Un projet récent consiste à écrire à la main un pool de connexions de chaînes. Les environnements étant différents, il existe des versions de développement, des versions de test et des versions en ligne, et la base de données utilisée par chaque version est également différente. Par conséquent, il est nécessaire de changer de manière flexible les connexions aux bases de données. Bien sûr, cela peut être résolu en utilisant Maven. Le framework de configuration Apache Commons est principalement utilisé pour analyser les chaînes de connexion à la base de données.
Ce qui suit présente les parties communes du framework de configuration Apache Commons.
1) Le framework de configuration Apache Commons utilise
**
pour télécharger le package jar http://www.php.cn/ ou http : //www.php.cn/ Recherchez et téléchargez
dans maven pour étudier l'utilisation de l'API.
Avantages d'utilisation
-
·Lorsque la structure XML change de manière significative, il n'est pas nécessaire de trop modifier le code d'analyse XML
Les utilisateurs doivent uniquement modifier leur propre arbre de syntaxe d'analyse.
Les clients doivent uniquement modifier le cadre de l'arborescence syntaxique pour l'analyse. Le point de départ de la réflexion est de savoir s'il est similaire au modèle d'interpréteur dans le modèle de conception. Créez un arbre de syntaxe abstraite et interprétez l'exécution.
Les utilisateurs doivent uniquement se soucier et modifier leur propre arbre de syntaxe d'analyse.
Les utilisateurs n'ont pas à se soucier de la façon d'analyser, ils ont juste besoin de configurer les règles de grammaire d'analyse correspondantes.
-
Simplifiez le programme et modifiez considérablement le code après les changements de structure de configuration XML.
Configurez d’abord Maven.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Définissez un springok1.xml avec le contenu suivant
1 2 3 4 5 6 7 |
|
L'analyse le code commence
1 2 3 4 5 6 7 |
|
Le résultat est le suivant : Cela signifie que le XML a été analysé avec succès.
127.0.0.1
3306
admin
Méthodes d'obtention Il existe de nombreuses méthodes d'acquisition plus détaillées que l'on peut trouver dans la méthode AbstractConfiguration.
La configuration ci-dessus correspond aux informations de connexion d'une base de données. Si les informations de connexion de plusieurs bases de données sont configurées, comment analyser les informations de connexion et changer. Modifiez les informations de springok1.xml pour configurer plusieurs connexions comme suit :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Supposons maintenant que nous souhaitions obtenir les informations de connexion de deux bases de données de configuration. Le programme est le suivant :
1 2 3 4 5 6 7 8 9 10 11 |
|
Sortie :
127.0.0.1
3306
admin
127.0.0.1
3302
admin
admin
l'analyse est correcte,
combiné avec la configuration précédente Dans l'exemple de fichier et le combat réel, nous avons constaté que s'il y a plusieurs balises identiques, l'index part de 0.
L'expression XPath utilise la méthode d'accès au point
. La méthode ci-dessus ne pose aucun problème. Pour certaines configurations complexes, nous devrons peut-être utiliser le langage d'expression XPath. Le principal avantage ici est que, grâce aux requêtes avancées de XML, le programme semble toujours relativement simple et facile à comprendre. Haute compréhensibilité.
Ou analysez le fichier springok.xml ci-dessus. Le code est le suivant :
1 2 3 4 |
|
Sortie :
127.0.0.1
3302
Test ok.
Accès aux variables d'environnement
1 2 |
|
Analyse du code source Comment implémenter :
1 2 3 |
|
Configuration conjointe
Méthodes conjointes 1 et 2 Pouvons-nous définir une clé de chaîne de base de données qui doit être connectée dans la variable système. ? Parse Quand obtenir le chargement dynamique ?
1 2 3 4 5 6 7 8 9 |
|
Le test est ok, pas de problème.
Modularité de gestion unifiée
La configuration XML est la suivante :
public String getDbUrl()throws ConfigurationException {
Générateur DefaultConfigurationBuilder =
nouveau DefaultConfigurationBuilder (« config.xml »);
charge booléenne =true ;
CombinedConfiguration config = builder.getConfiguration(load);
config.setExpressionEngine(nouveau XPathExpressionEngine());
Chaîne env = config.getString("ENV_TYPE");
if("dev".equals(env) ||"production".equals(env)) {
String xpath ="databases/database[name = '" env "']/url";
Renvoie config.getString(xpath);
}autre{
String msg = "La variable d'environnement ENV_TYPE est"
« pas correctement réglé » ;
Lancez une nouvelle IllegalStateException(msg);
}
}
Rechargement automatique
ou le contrôle lors de la configuration :
1 2 3 4 5 |
|
下面是dom和sax方式的手动解析方式可参考使用。
java语言中xml解析有很多种方式,最流行的方式有sax和dom两种。
1. dom是把所有的解析内容一次性加入内存所以xml内容大的话性能不好。
2. sax是驱动解析。所以内存不会占用太多。(spring用的就是sax解析方式)
需要什么包自己到网上找下吧?
xml文件如下:
1 2 3 4 5 6 7 8 9 10 11 |
|
1)DOM(JAXP Crimson解析器)
1 |
|
1 2 3 4 5 6 7 |
|
2)SAX
1 2 3 4 5 6 7 |
|
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 |
|
**
总结:个人喜欢这个框架,支持定时刷新、xpath、import方式。
近期项目自己手写一个字符串连接池。因为环境不同有开发版本、测试版本、上线版本、每一个版本用到的数据库也是不一样的。所以需要能灵活的切换数据库连接。当然这个用maven就解决了。Apache Commons Configuration 框架用的主要是解析数据库连接字符串。
下面介绍Apache Commons Configuration 框架的常用部分。
1)Apache Commons Configuration framework框架使用
**
下载jar包http://www.php.cn/或者http://www.php.cn/ maven中搜索下载
研究api的使用。
使用好处
·当xml结构大变化的时候不用过多的修改解析xml的代码
用户只需要修改自己的解析语法树即可。
客户只需要修改语法树框架去解析,思考的起点是不是跟设计模式中的解释器模式类似。构建抽象语法树并解释执行。
用户只需要关心和修改自己的解析语法树即可。
用户不用关系如何解析只需要配置对应的解析语法规则即可。
简化程序xml配置结构变化后大幅度的修改代码。
首先先配置一下Maven。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
定义一个springok1.xml内容如下
1 2 3 4 5 6 7 |
|
解析代码开始了
1 2 3 4 5 6 7 |
|
输出如下:说明已经成功解析xml了。
127.0.0.1
3306
admin
获取的方法有很多种更详细的获取方法可以从AbstractConfiguration方法中对应找到。
上面配置的是一个数据库的连接信息,如果配置很多数据库的连接信息,怎么解析连接信息切换呢。修改springok1.xml的信息为多个连接配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
现在假设我们要获取两个的配置数据库连接信息,程序如下:
1 2 3 4 5 6 7 8 9 10 11 |
|
输出:
127.0.0.1
3306
admin
127.0.0.1
3302
admin
admin
解析ok,
结合前面的配置文件的例子跟实战我们发现多个相同的标签的话索引是从0开始的。
XPath表达式使用
点的访问方式上面的那种方式是没问题,对于一些复杂的配置来讲,我们可能需要使用XPath表达式语言。这里的主要优点是,使用了XML的高级查询,程序看起来仍然比较简洁易懂。可理解性高。
还是解析上面的springok.xml文件。代码如下:
1 2 3 4 |
|
输出:
127.0.0.1
3302
测试ok.
访问环境变量
1 2 |
|
源码分析如何实现:
1 2 3 |
|
联合配置
联合一和2两种方式,是不是我们可以再系统变量中定义一个需要连接的数据库字符串key,解析的时候获取动态加载呢?
1 2 3 4 5 6 7 8 9 |
|
测试ok没问题。
统一管理模块化
xml配置如下图:
public String getDbUrl()throws ConfigurationException {
DefaultConfigurationBuilder builder =
new DefaultConfigurationBuilder(“config.xml”);
boolean load =true;
CombinedConfiguration config = builder.getConfiguration(load);
config.setExpressionEngine(new XPathExpressionEngine());
String env = config.getString(“ENV_TYPE”);
if(“dev”.equals(env) ||”production”.equals(env)) {
String xpath =”databases/database[name = ‘”+ env +”’]/url”;
return config.getString(xpath);
}else{
String msg =”ENV_TYPE environment variable is “+
“not properly set”;
throw new IllegalStateException(msg);
}
}
自动重新加载
当基于文件的配置变化的时候自动加载,因为我们可以设置加载策略。框架会轮询配置文件,当文件的内容发生改变时,配置对象也会刷新。你可以用程序控制:
1 2 3 4 |
|
或者配置的时候控制:
1 2 3 4 5 |
|
下面是dom和sax方式的手动解析方式可参考使用。
java语言中xml解析有很多种方式,最流行的方式有sax和dom两种。
1. dom是把所有的解析内容一次性加入内存所以xml内容大的话性能不好。
2. sax是驱动解析。所以内存不会占用太多。(spring用的就是sax解析方式)
需要什么包自己到网上找下吧?
xml文件如下:
1 2 3 4 5 6 7 8 9 10 11 |
|
1)DOM(JAXP Crimson解析器)
1 |
|
1 2 3 4 5 6 7 |
|
2)SAX
1 2 3 4 5 6 7 |
|
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 |
|
**
总结:个人喜欢这个框架,支持定时刷新、xpath、import方式。
以上就是Apache Commons Configuration读取xml配置的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Pour configurer un répertoire CGI dans Apache, vous devez effectuer les étapes suivantes: Créez un répertoire CGI tel que "CGI-Bin" et accorder des autorisations d'écriture Apache. Ajoutez le bloc directif "Scriptalias" dans le fichier de configuration Apache pour mapper le répertoire CGI à l'URL "/ cgi-bin". Redémarrez Apache.

Apache se connecte à une base de données nécessite les étapes suivantes: Installez le pilote de base de données. Configurez le fichier web.xml pour créer un pool de connexion. Créez une source de données JDBC et spécifiez les paramètres de connexion. Utilisez l'API JDBC pour accéder à la base de données à partir du code Java, y compris l'obtention de connexions, la création d'instructions, les paramètres de liaison, l'exécution de requêtes ou de mises à jour et de traitement des résultats.

Lorsque le port Apache 80 est occupé, la solution est la suivante: découvrez le processus qui occupe le port et fermez-le. Vérifiez les paramètres du pare-feu pour vous assurer qu'Apache n'est pas bloqué. Si la méthode ci-dessus ne fonctionne pas, veuillez reconfigurer Apache pour utiliser un port différent. Redémarrez le service Apache.

Il existe 3 façons d'afficher la version sur le serveur Apache: via la ligne de commande (apachectl -v ou apache2ctl -v), cochez la page d'état du serveur (http: // & lt; serveur ip ou nom de domaine & gt; / server-status), ou afficher le fichier de configuration Apache (serverVeelion: apache / & lt; version & gt;).

Comment afficher la version Apache? Démarrez le serveur Apache: utilisez le service sudo apache2 Démarrez pour démarrer le serveur. Afficher le numéro de version: utilisez l'une des méthodes suivantes pour afficher la version: ligne de commande: exécutez la commande apache2 -v. Page d'état du serveur: accédez au port par défaut du serveur Apache (généralement 80) dans un navigateur Web, et les informations de version s'affichent en bas de la page.

Pour supprimer une directive de nom de serveur supplémentaire d'Apache, vous pouvez prendre les étapes suivantes: Identifier et supprimer la directive supplémentaire de serveur. Redémarrez Apache pour que les modifications prennent effet. Vérifiez le fichier de configuration pour vérifier les modifications. Testez le serveur pour vous assurer que le problème est résolu.

Apache ne peut pas démarrer car les raisons suivantes peuvent être: Erreur de syntaxe du fichier de configuration. Conflit avec d'autres ports de demande. Problème d'autorisations. Hors de la mémoire. Traitement dans l'impasse. Échec du démon. Problèmes d'autorisations de Selinux. Problème de pare-feu. Conflit logiciel.

Les étapes pour démarrer Apache sont les suivantes: Installez Apache (Commande: Sudo apt-get install Apache2 ou téléchargez-le à partir du site officiel) Start Apache (Linux: Sudo SystemCTL Démarrer Apache2; Windows: Cliquez avec le bouton droit sur le service "APACHE2.4" et SELECT ") Vérifiez si elle a été lancée (Linux: SUDO SYSTEMCTL STATURE APACHE2; (Facultatif, Linux: Sudo SystemCTL
