Comparé à d'autres moteurs de modèles Java, Beetl possède des fonctions complètes, une syntaxe intuitive, des performances extrêmement élevées et une bonne expérience dans le développement et la maintenance de modèles. Il s'agit d'une nouvelle génération de moteur de modèles.
D'une manière générale, ses caractéristiques sont les suivantes
1. Fonctions complètes : par rapport aux moteurs de modèles Java traditionnels, Beetl possède la plupart des fonctions. Il convient à divers scénarios d'application, depuis les grands sites Web ayant des exigences élevées en matière de vitesse de réponse jusqu'aux systèmes de gestion CMS dotés de nombreuses fonctions. Beetl lui-même possède également de nombreuses fonctionnalités uniques pour compléter l'écriture et la maintenance des modèles, ce que les autres moteurs de modèles ne possèdent pas.
2. Très simple : similaire à la syntaxe et aux coutumes Javascript, il ne faut qu'une demi-heure pour maîtriser complètement l'utilisation grâce à un demi-apprentissage et à une demi-devination. Rejetez la syntaxe et les conventions impersonnelles des autres moteurs de modèles.
3. Ultra-hautes performances : Beetl dépasse de loin les performances des moteurs de modèles Java traditionnels, par exemple 5 à 6 fois celles de freemarker et 2 fois celles de la technologie jsp traditionnelle. Et consomme moins de CPU
4. Facile à intégrer : Beetl peut être facilement intégré à divers frameworks Web, tels que Spring MVC, JFinal, Struts, Nutz, Jodd, Servlet, etc.
5. Prend en charge le développement et les tests indépendants des modèles, c'est-à-dire que dans l'architecture MVC, les modèles peuvent être développés et testés même sans pièces M et C.
6. Extension et personnalisation : Beetl prend en charge les méthodes personnalisées, les fonctions de formatage, les attributs virtuels, les balises et les balises HTML. Dans le même temps, Beetl prend également en charge les espaces réservés personnalisés et les symboles de début d'instruction de contrôle, et permet aux utilisateurs de créer des boîtes à outils qui leur conviennent.
Comparé aux moteurs de modèles traditionnels Freemarker, Velocity et JSP, Beetl est bien supérieur aux trois précédents, car au niveau macro, il a dépassé le moteur de rendu optimisé, la sortie binaire IO et les améliorations d'accès aux attributs de bytecode. niveau, il a réussi Les tableaux unidimensionnels enregistrent le contexte, fusionnent le texte statique, empêchent Java de créer et de détruire fréquemment des tableaux en réutilisant des tableaux d'octets, et utilisent également la mise en cache des modèles, l'optimisation de l'exécution et d'autres méthodes.
Beetl possède certaines fonctions que les moteurs de modèles développés depuis plus de 10 ans n'ont pas. Ces fonctions sont très propices au développement et à la maintenance de modèles, comme suit.
1. Personnalisez les espaces réservés et les symboles de début d'instruction de contrôle, ce qui est utile pour réduire l'intrusion de la syntaxe du modèle dans les modèles. Par exemple, dans les modèles HTML, si les symboles d'instruction de contrôle sont définis, la plupart des fichiers de modèle peuvent utiliser le même Ouvrir via le navigateur. Certains utilisateurs n'utilisent qu'un seul symbole @ et un retour chariot comme symbole de début de l'instruction de contrôle, ce qui peut améliorer l'efficacité du développement.
2. Modèles pouvant être testés individuellement. Les modèles de Beetl peuvent être développés et testés indépendamment sans avoir besoin de véritables couches de contrôle et de modèle.
3. Prend en charge à la fois le MVC libre et le MVC strict. Si l'intégration d'expressions de calcul, d'expressions conditionnelles complexes et d'appels de fonction dans le langage de modèle est suspectée d'interférer avec la logique métier, vous pouvez interdire l'utilisation de ces syntaxes.
4. Sortie de sécurité puissante, grâce aux symboles de sortie de sécurité ! , peut fournir une sortie sécurisée dans les variables de modèle, les références d'attributs de variables, les boucles for, la sortie d'espace réservé, le try-catch et d'autres endroits pour garantir un rendu normal.
5. Variables de modèle : exécutez et attribuez une certaine partie de la sortie du modèle à une variable telle que js, et traitez-la plus tard. Des mises en page très complexes peuvent être complétées à l'aide de variables de modèle (pour des mises en page simples, la fonction de balise de mise en page peut être utilisée).
6. L'inférence de type peut déduire les types de variables de modèle au moment de l'exécution pour optimiser les performances. Les attributs des variables de modèle peuvent également être affichés via des annotations (ce n'est pas nécessaire, mais cela est utile pour la fonction d'invite automatique de l'EDI).
7. Conception enfichable, messages d'erreur, mécanisme de mise en cache du moteur de modèle, gestion des ressources de modèle, gestionnaire de sécurité appelé localement, restrictions MVC strictes, le moteur de modèle lui-même a une implémentation par défaut, mais il peut être entièrement personnalisé pour répondre à des besoins spécifiques.
8. Syntaxe améliorée, telle que le rendu partiel #ajax, for-elsefor, select-case, Safe Output Symbols !, etc. Ces syntaxes sont particulièrement adaptées au développement de modèles.
9. Ultra-hautes performances, avec le moteur d'interprétation de modèles le plus rapide et une faible consommation de processeur. Convient à tous les types de références de modèles, tels que les systèmes CMS et les systèmes de portail à très fort trafic.