spring boot 中3步集成beetl

<!DOCTYPE html><html><head><title>spring boot 中3步集成beetl</title><meta charset='utf-8'><link href='https://dn-maxiang.qbox.me/res-min/themes/marxico.css' rel='stylesheet'><style></style></head><body><div id='preview-contents' class='note-content'>

 

<h1 id="spring-boot-中3步集成beetl">spring boot 中3步集成beetl</h1>

<blockquote>
<p>因为项目要使用spring boot 和 beetl,官方文档写的也不是很详细,网上找了几篇文章写法各异,有的ide中好用,发布成jar就找不到模版了。折腾了快3个小时,终于搞定了。关键就是beetl的classloader要配置成springbot的。并且视图不要配置前后缀。集成步骤如下:</p>
</blockquote>

<ol start="1"><li rel="1">引入beetl依赖。注意引入的artifactId为 <strong>beetl-framework-starter</strong>。这个是spring boot的版本,不要引入成普通版本哦。</li>
</ol>

<pre class="prettyprint hljs-dark"><code class="hljs xml"><div class="hljs-line"> <span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
</div><div class="hljs-line"> <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>com.ibeetl<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
</div><div class="hljs-line"> <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>beetl-framework-starter<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
</div><div class="hljs-line"> <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>1.1.17.RELEASE<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
</div><div class="hljs-line"> <span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
</div></code></pre>

<ol start="2"><li rel="2"><p>在resources目录下新建beetl.properties。可以在这里修改beetl的默认配置。如果不修改默认配置,就建立一个空文件。</p></li>
<li rel="3"><p>在springboot的启动类上添加如下代码。</p></li>
</ol>

<pre class="prettyprint hljs-dark"><code class="hljs kotlin"><div class="hljs-line"><span class="hljs-meta">@Bean(initMethod = <span class="hljs-meta-string">"init"</span>, name = <span class="hljs-meta-string">"beetlConfig"</span>)</span>
</div><div class="hljs-line"> <span class="hljs-keyword">public</span> BeetlGroupUtilConfiguration getBeetlGroupUtilConfiguration() {
</div><div class="hljs-line"> BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration();
</div><div class="hljs-line"> <span class="hljs-comment">//获取Spring Boot 的ClassLoader</span>
</div><div class="hljs-line"> ClassLoader loader = Thread.currentThread().getContextClassLoader();
</div><div class="hljs-line"> <span class="hljs-keyword">if</span>(loader==<span class="hljs-literal">null</span>){
</div><div class="hljs-line"> loader = SpringBootApplication.<span class="hljs-keyword">class</span>.getClassLoader();
</div><div class="hljs-line"> }
</div><div class="hljs-line"> <span class="hljs-keyword">try</span> {
</div><div class="hljs-line"> beetlGroupUtilConfiguration.setConfigProperties(PropertiesLoaderUtils.loadAllProperties(<span class="hljs-string">"beetl.properties"</span>));
</div><div class="hljs-line"> } <span class="hljs-keyword">catch</span> (IOException e) {
</div><div class="hljs-line"> e.printStackTrace();
</div><div class="hljs-line"> }
</div><div class="hljs-line"> ClasspathResourceLoader cploder = new ClasspathResourceLoader(loader,<span class="hljs-string">"templates"</span>);
</div><div class="hljs-line"> beetlGroupUtilConfiguration.setResourceLoader(cploder);
</div><div class="hljs-line"> beetlGroupUtilConfiguration.init();
</div><div class="hljs-line"> <span class="hljs-comment">//如果使用了优化编译器,涉及到字节码操作,需要添加ClassLoader</span>
</div><div class="hljs-line"> GroupTemplate groupTemplate = beetlGroupUtilConfiguration.getGroupTemplate();
</div><div class="hljs-line"> groupTemplate.setClassLoader(loader);
</div><div class="hljs-line"> <span class="hljs-keyword">return</span> beetlGroupUtilConfiguration;
</div><div class="hljs-line"> }
</div><div class="hljs-line">
</div><div class="hljs-line"> <span class="hljs-meta">@Bean(name = <span class="hljs-meta-string">"beetlViewResolver"</span>)</span>
</div><div class="hljs-line"> <span class="hljs-keyword">public</span> BeetlSpringViewResolver getBeetlSpringViewResolver(<span class="hljs-meta">@Qualifier(<span class="hljs-meta-string">"beetlConfig"</span>)</span> BeetlGroupUtilConfiguration beetlGroupUtilConfiguration) {
</div><div class="hljs-line"> BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
</div><div class="hljs-line"> beetlSpringViewResolver.setContentType(<span class="hljs-string">"text/html;charset=UTF-8"</span>);
</div><div class="hljs-line"> beetlSpringViewResolver.setOrder(<span class="hljs-number">0</span>);
</div><div class="hljs-line"> beetlSpringViewResolver.setConfig(beetlGroupUtilConfiguration);
</div><div class="hljs-line"> <span class="hljs-keyword">return</span> beetlSpringViewResolver;
</div><div class="hljs-line"> }
</div></code></pre>

<p>注意 getBeetlSpringViewResolver方法中,<strong>不要</strong>设置视图的前缀和后缀,否则可能会找不到模版。</p>

 

<pre class="prettyprint hljs-dark"><code class="hljs less"><div class="hljs-line"> <span class="hljs-comment">//不需要配置</span>
</div><div class="hljs-line"> <span class="hljs-selector-tag">beetlSpringViewResolver</span><span class="hljs-selector-class">.setPrefix</span>(<span class="hljs-string">"/xxx"</span>);
</div><div class="hljs-line"> <span class="hljs-selector-tag">beetlSpringViewResolver</span><span class="hljs-selector-class">.setSuffix</span>(<span class="hljs-string">"html"</span>);
</div></code></pre>

<ol start="4"><li rel="4">使用 <br>
controller代码,跳转页面时,因为没有配置视图的前缀和后缀,所以return的字符串要写全如下。</li>
</ol>

<pre class="prettyprint hljs-dark"><code class="hljs cs"><div class="hljs-line"><span class="hljs-comment">/***
</span></div><div class="hljs-line"> * 欢迎页面
</div><div class="hljs-line"> */
</div><div class="hljs-line">@RequestMapping(<span class="hljs-keyword">value</span> = <span class="hljs-string">"/admin/welcome"</span>,method = RequestMethod.GET)
</div><div class="hljs-line"><span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">welcome</span>(<span class="hljs-params"></span>) </span>{
</div><div class="hljs-line"> <span class="hljs-keyword">return</span> <span class="hljs-string">"/admin/"</span> + getTemplateName() + <span class="hljs-string">"/welcome.html"</span>;
</div><div class="hljs-line">}
</div><div class="hljs-line">
</div></code></pre>

<p>模版位置</p>

<p><img longdesc="./1509697131096.png" alt="Alt text" title="" type="image/png" src="https://img-blog.csdnimg.cn/2022010612562574843.png" class=""></p></div></body></html>

转载于:https://www.cnblogs.com/daqian/p/7778834.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值