上一篇博客讲到了怎样在Idea上搭建springboot,这次主要讲如何使用springboot来整合Mybatis,以及渲染模板的使用。
1. 首先要整合mybatis以及使用渲染模板创建springboot时要选择一些依赖,如下图标记所示:
选定之后就可以创建项目了,当然不选也是可以的,不过要手动导入依赖。
2.然后再来看一下项目结构:
其实跟ssm的结构没啥区别,还有一些package的作用上一期也讲到了。图中最令人新奇的可能是那几个ftl文件,这就是springboot的渲染模板之一的freemarker,因为springboot是不推荐使用jsp的。一般都是用渲染模板,有好几种有兴趣的同学可以自行去了解。
3.看完的项目结构就来讲一下如何使用mybatis,其实mvc三层的写法跟ssm是没有区别的,区别就在于配置的东西不一样了。就先直接贴出yml的配置文件了:
server:
port: 8899 #端口号
servlet:
context-path: /ssm #访问路径
#配置数据库连接池
spring:
datasource:
username: root #数据库用户名
password: tiger @数据库密码
#数据库连接地址 ’serverTimezone‘是设置与服务器时间同步。
url: jdbc:mysql://localhost:3306/oracle?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver #数据库连接驱动
mybatis:
type-aliases-package: com.zs.springboot_03.model #mybatis别名
mapper-locations: classpath:com/zs/springboot_03/model/*.xml @mapper扫描器
sprigboot的配置文件有两种格式:yml与properties,我这里用的是yml的格式,因为我觉得这种格式比properties要整洁规范,所以比较喜欢。上面的配置文件没有太多需要解释的地方,看注释就行(复制代码之后记得把注释删掉,因为yml里面写注释会报错,我这里是方便讲解加的注释)。其他mvc的写法与ssm没区别就不贴出来了。
4.最后来说一下怎么使用sprigboot的渲染模板freemarker:
首先还是要在yml中配置渲染模板,先直接贴代码:
spring:
freemarker:
#指定HttpServletRequest的属性是否可以覆盖controller的model的同名项
allow-request-override: false
#req访问request
request-context-attribute: req
#后缀名freemarker默认后缀为.ftl,
suffix: .ftl
#设置响应的内容类型
content-type: text/html;charset=utf-8
#是否允许mvc使用freemarker
enabled: true
#是否开启template caching
cache: false
#设定模板的加载路径,多个以逗号分隔,默认: [“classpath:/templates/”]
template-loader-path: classpath:/templates/
#设定Template的编码
charset: UTF-8
下图是完整的application.yml:
自行删掉注释就行。
然后就可以在templates中创建ftl文件了,新创建的ftl文件是一片空白,直接将一个html空白模板拷进去使用就行了:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
</body>
</html>
创建好模板后再来说一下模板的指令:
先将controller层的数据传过来,
@RequestMapping("/test")
public String test(HttpServletRequest request, Model model, Map map){
System.out.println("index");
request.setAttribute("kk","Faker大魔王");
model.addAttribute("list",stuService.findStu());
map.put("sex",0);
map.put("arr",new int[]{7,9,2,3,5,0,9,7});
return "index";
}
然后就在模板中使用指令将数据展示:
<body>
<#include "head.ftl">
<h1>freemarker</h1>
${kk}<br>
<#-- 模板指令 判断 if-->
<#if sex==0>
男
<#elseif sex==1>
女
<#else>
其他
</#if>
<#list arr as lw>
${lw}
</#list>
<br>
<#list list as li>
${li.sname}----${li.sage}
</#list>
<hr/>
<a href="/getJson">nice</a>
<input type="button" onclick="javascript:alert('aaa')">
<#include "admin/foot.ftl">
</body>
数据显示如下图:
有点乱,不过没什么影响。<#>用来定义指令,这里主要使用到了list,if与include,还有很多其他的可以自己去了解。到这里使用mybatis的freemarker也就讲完了,都比较简单。就是配置文件不太一样。
下面还有写关于springboot的资料,有兴趣的同学可以下载,但好像没有0积分选项,下载需要用到一个积分。