## 3.5 Spring Boot集成
支持SpringBoot2和SpringBoot3
### 3.5.1 Spring Boot 3
~~~xml
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl-springboot-starter-jdk17</artifactId>
<version>3.16.2.RELEASE</version>
</dependency>
~~~
Java代碼 ,使用@EnableBeetl
```java
@SpringBootApplication
@EnableBeetl
public class TestSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(TestSpringBootApplication.class, args);
}
}
```
starter 自動處理以btl結尾的視圖,模板根目錄是Spring Boot默認的templates目錄。如下配置可以修改beetl部分屬性
* beetl-beetlsql.dev,默認為true,即自動檢查模板變化
* beetl.enabled 默認為true,集成beetl。
* beetl.suffix 默認為btl,表示只處理視圖后綴為btl的模板,比如controller里代碼是“return /common/index.btl”,則能被Beetl處理,你寫成"return /common/index",或者"/common/index.html",都會出現404錯誤。
Starter可以實現BeetlTemplateCustomize來定制Beetl
~~~java
@Configuration
public MyConfig{
@Bean
public BeetlTemplateCustomize beetlTemplateCustomize(){
return new BeetlTemplateCustomize(){
public void customize(GroupTemplate groupTemplate){
}
};
}
}
~~~
### 3.5.2 Spring Boot 2
~~~xml
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl-spring-boot-starter-classic</artifactId>
<version>3.14.1.RELEASE</version>
</dependency>
~~~
Java代碼 ,使用@EnableBeetl
```java
@SpringBootApplication
@EnableBeetl
public class TestSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(TestSpringBootApplication.class, args);
}
}
```
關于Beetl配置同Spring Boot3
### 3.5.3 兼容 Spring Boot 2 (不推薦)
在3.14版本之前,使用的是`beetl-framework-starter` ,也適用于Spring Boot 2
~~~xml
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl-framework-starter</artifactId>
<version>1.2.31.Beetl.RELEASE</version>
</dependency>
~~~
這種方式不需是Spring Starter方式,自動集成Beetl,不需要@EnableBeetl 注解
### 3.5.4 自己集成
無論上面那種方式,本質上是構造BeetlGroupUtilConfiguration,和創建 BeetlSpringViewResolver實例,可以自己定義集成方式,參考代碼如下
```java
@Configuration
public class BeetlConf {
@Value("${beetl.templatesPath}") String templatesPath;//模板根目錄 ,比如 "templates"
@Bean(name = "beetlConfig")
public BeetlGroupUtilConfiguration getBeetlGroupUtilConfiguration() {
BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration();
//獲取Spring Boot 的ClassLoader
ClassLoader loader = Thread.currentThread().getContextClassLoader();
if(loader==null){
loader = BeetlConf.class.getClassLoader();
}
beetlGroupUtilConfiguration.setConfigProperties(extProperties);//額外的配置,可以覆蓋默認配置,一般不需要
ClasspathResourceLoader cploder = new ClasspathResourceLoader(loader,
templatesPath);
beetlGroupUtilConfiguration.setResourceLoader(cploder);
beetlGroupUtilConfiguration.init();
//如果使用了優化編譯器,涉及到字節碼操作,需要添加ClassLoader
beetlGroupUtilConfiguration.getGroupTemplate().setClassLoader(loader);
return beetlGroupUtilConfiguration;
}
@Bean(name = "beetlViewResolver")
public BeetlSpringViewResolver getBeetlSpringViewResolver(@Qualifier("beetlConfig") BeetlGroupUtilConfiguration beetlGroupUtilConfiguration) {
BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
beetlSpringViewResolver.setOrder(0);
beetlSpringViewResolver.setConfig(beetlGroupUtilConfiguration);
return beetlSpringViewResolver;
}
}
```
- Beetl 3 中文文檔
- 第一部分 基礎用法
- 1.1 安裝
- 1.2 快速開始
- 1.3 模板基礎配置
- 1.4 模板加載器
- 1.5 定界符與占位符
- 1.6 注釋
- 1.7 變量定義
- 1.8 屬性
- 1.9 數學表達式
- 1.10 循環語句
- 1.11 條件語句
- 1.12 異常捕獲
- 1.13 虛擬屬性
- 1.14 函數調用
- 1.15 安全輸出(重要)
- 1.16 輸出格式化
- 1.17 標簽
- 1.18 調用Java方法與屬性
- 1.19 嚴格MVC控制
- 1.20 指令
- 1.21 錯誤處理
- 1.22 Beetl小工具
- 1.23 Escape
- 第二部分 高級用法
- 2.1 配置GroupTemplate
- 2.2 自定義方法
- 2.3 自定義格式化函數
- 2.4 自定義標簽
- 2.5 自定義虛擬屬性
- 2.6 使用額外的資源加載器
- 2.7 自定義資源加載器
- 2.8 使用CompositeResourceLoader
- 2.9 自定義錯誤處理器
- 2.10 自定義安全管理器
- 2.11 注冊全局共享變量
- 2.12 自定義布局
- 2.13 性能優化
- 2.14 定制輸出
- 2.15 定制模板引擎
- 2.16 直接運行Beetl腳本
- 2.17 模板校驗
- 第三部分 Web 集成
- 3.1 Web提供的全局變量
- 3.2 集成技術開發指南
- 3.3 Servlet集成
- 3.4 SpringMVC集成
- 3.5 Spring Boot集成
- 3.6 Jodd集成
- 3.7 JFinal4 集成方案
- 3.8 Nutz集成
- 3.9 Struts2集成
- 3.10 整合ajax的局部渲染技術
- 3.11 在頁面輸出錯誤提示信息
- 附錄
- 4.1 內置方法
- 4.2 Spring相關函數
- 4.3 Spring security
- 4.4 shiro
- 4.5 內置格式化方法
- 4.6 內置標簽函數
- 4.7 內置html標簽
- 4.8 性能優化
- 4.9 Eclipse 插件
- 4.10 性能測試對比