Comparado com outros mecanismos de template java, Beetl possui funções completas, sintaxe intuitiva, desempenho altíssimo e uma boa experiência no desenvolvimento e manutenção de templates. É uma nova geração de mecanismo de template.
De um modo geral, suas características são as seguintes
1. Funções completas: Comparado com os principais mecanismos de modelo Java, o Beetl possui a maioria das funções. É adequado para vários cenários de aplicação, desde grandes sites com altos requisitos de velocidade de resposta até sistemas de gerenciamento CMS com muitas funções. O próprio Beetl também possui muitos recursos exclusivos para completar a escrita e manutenção de modelos, que outros mecanismos de modelo não possuem.
2. Muito simples: semelhante à sintaxe e aos costumes do Javascript, leva apenas meia hora para dominar totalmente o uso por meio de meio aprendizado e meio adivinhação. Rejeite a sintaxe impessoal e as convenções de outros mecanismos de modelo.
3. Desempenho ultra-alto: Beetl excede em muito o desempenho dos principais mecanismos de modelo java, como 5 a 6 vezes o do freemarker e 2 vezes o da tecnologia jsp tradicional. E consome menos CPU
4. Fácil de integrar: Beetl pode ser facilmente integrado a vários frameworks web, como Spring MVC, JFinal, Struts, Nutz, Jodd, Servlet, etc.
5. Suporta desenvolvimento e teste independentes de templates, ou seja, na arquitetura MVC, templates podem ser desenvolvidos e testados mesmo sem partes M e C.
6. Extensão e personalização: Beetl oferece suporte a métodos personalizados, funções de formatação, atributos virtuais, tags e tags HTML. Ao mesmo tempo, Beetl também oferece suporte a espaços reservados personalizados e símbolos iniciais de instruções de controle e permite que os usuários criem kits de ferramentas adequados a eles.
Comparado com os principais mecanismos de modelo Freemarker, Velocity e JSP, o Beetl é muito superior aos três anteriores. Isso ocorre porque, em um nível macro, ele passou pelo mecanismo de renderização otimizado, pela saída binária IO e pelos aprimoramentos de acesso aos atributos de bytecode. nível, ele passou matrizes unidimensionais para salvar contexto, mesclar texto estático, evitar que Java crie e destrua matrizes com frequência reutilizando matrizes de bytes e também use cache de modelo, otimização de tempo de execução e outros métodos.
Beetl possui algumas funções que os motores de template desenvolvidos há mais de 10 anos não possuem. Essas funções são muito propícias ao desenvolvimento e manutenção de templates, como segue.
1. Personalize espaços reservados e símbolos iniciais de instruções de controle, o que é útil para reduzir a intrusão da sintaxe do modelo nos modelos. Por exemplo, em modelos HTML, se os símbolos das instruções de controle forem definidos, a maioria dos arquivos de modelo poderá usar o mesmo Open via navegador. Alguns usuários usam apenas um único símbolo @ e retorno de carro como símbolo inicial da instrução de controle, o que pode melhorar a eficiência do desenvolvimento.
2. Modelos que podem ser testados individualmente. Os modelos do Beetl podem ser desenvolvidos e testados de forma independente, sem a necessidade de controle real e camadas de modelo.
3. Suporta MVC flexível e MVC estrito Se houver suspeita de que a incorporação de expressões de cálculo, expressões condicionais complexas e chamadas de função na linguagem do modelo interfira na lógica de negócios, você pode proibir o uso dessas sintaxes.
4. Saída de segurança poderosa, através de símbolos de saída de segurança! , pode fornecer saída segura em variáveis de modelo, referências de atributos de variáveis, loops for, saída de espaço reservado, try-catch e outros locais para garantir a renderização normal.
5. Variáveis de modelo: execute e atribua uma determinada parte da saída do modelo a uma variável como js e processe-a posteriormente. Layouts de página muito complexos podem ser concluídos usando variáveis de modelo (para layouts simples, a função de tag de layout pode ser usada).
6. A inferência de tipo pode inferir tipos de variáveis de modelo em tempo de execução para otimizar o desempenho. Os atributos de variáveis de modelo também podem ser exibidos por meio de anotações (isso não é necessário, mas é útil para a função de prompt automático do IDE).
7. Design conectável, prompts de mensagens de erro, mecanismo de cache do mecanismo de modelo, gerenciamento de recursos de modelo, gerenciador de segurança chamado localmente, restrições rígidas de MVC, o próprio mecanismo de modelo tem uma implementação padrão, mas pode ser completamente personalizado para atender a necessidades específicas.
8. Sintaxe aprimorada, como renderização parcial #ajax, for-elsefor, select-case, símbolos de saída seguros!, etc.
9. Desempenho ultra-alto, com o mecanismo de interpretação de modelos mais rápido e baixo consumo de CPU. Adequado para todos os tipos de referências de modelos, como sistemas CMS e sistemas de portal de tráfego ultra-alto.