spring|搭建springboot+mybatis+freemarker项目

1. 创建springboot web项目 先创建一个项目
spring|搭建springboot+mybatis+freemarker项目
文章图片

选择maven项目,先什么都不勾,直接点击next
spring|搭建springboot+mybatis+freemarker项目
文章图片

groupid和artifactid可以随便填,然后点击next
spring|搭建springboot+mybatis+freemarker项目
文章图片

点击finish
spring|搭建springboot+mybatis+freemarker项目
文章图片

finish之后弹出的项目在右下角一般都会有这个弹框,询问你是否要引入依赖,我们选择自动引入
spring|搭建springboot+mybatis+freemarker项目
文章图片

初始项目是这样的
spring|搭建springboot+mybatis+freemarker项目
文章图片

maven项目创建好之后,接下来
1、首先,pom.xml文件添加springboot web依赖:

org.springframework.boot spring-boot-starter-parent 1.5.2.RELEASE org.springframework.boot spring-boot-starter-web

用来导入springboot web项目需要的依赖;
2、添加freemarker依赖
org.springframework.boot spring-boot-starter-freemarker

集成freemarker;
引入这两个依赖之后,pom文件是这样的
spring|搭建springboot+mybatis+freemarker项目
文章图片

3、配置freemarker 在resources文件夹下创建application.properties文件,并添加
#此处为配置静态文件的位置;注意:千万千万不能与ftl模板文#件的存放位置重合,那样会导致ftl文件以静态方式解析。 #spring.resources.static-locations=classpath:/resources/,classpath:/static/html/,classpath:/templates/ #freemarker配置 spring.freemarker.allow-request-override=false spring.freemarker.cache=true spring.freemarker.check-template-location=true spring.freemarker.charset=UTF-8 spring.freemarker.content-type=text/html #默认以.ftl结尾 spring.freemarker.suffix=.ftl #ftl文件存放的位置 spring.freemarker.template-loader-path=classpath:/templates/

spring|搭建springboot+mybatis+freemarker项目
文章图片

从application.properties配置文件中的spring.freemarker.template-loader-path属性可以看出,我们是要把ftl文件保存在templates文件夹下的,因此,我们在resources文件夹下创建templates文件夹,用来存放ftl文件,并创建login.ftl文件
4. 创建login.ftl文件
随意添加一下内容
springbootDemo - 锐客网 哈哈哈哈哈哈哈哈

spring|搭建springboot+mybatis+freemarker项目
文章图片

5.创建WebApplication启动类
在java文件夹下创建com.springboot包,并在该包下创建WebApplication类作为启动类
package com.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class WebApplication { public static void main(String[] args) { SpringApplication.run(WebApplication.class, args); } }

添加@SpringBootApplication注解代表这是一个springboot启动类
spring|搭建springboot+mybatis+freemarker项目
文章图片

6.创建Controller
在springboot包下创建controller包,在controller包下创建IndexCtrl类,添加@Controller注解代表这是一个Controller
package com.springboot.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class IndexCtrl {@GetMapping("admin/login") public String login() { System.out.println("hello world !"); return "login"; } }

spring|搭建springboot+mybatis+freemarker项目
文章图片

7. 启动WebApplication
运行WebApplication中的main方法,启动springboot web项目
spring|搭建springboot+mybatis+freemarker项目
文章图片

启动成功。
访问http://localhost:8080/admin/login
spring|搭建springboot+mybatis+freemarker项目
文章图片

看到这样,说明springboot web项目已经搭建成功了。
2. 集成mybatis 2.1创建实体类
在springboot包下创建entity包,并创建实体类UserInfoEntity
package com.springboot.entity; import javax.persistence.Table; @Table(name = "user_info", schema = "pangting") public class UserInfoEntity { private String userName; private Integer age; private Double height; public String getUserName() { return userName; }public void setUserName(String userName) { this.userName = userName; }public Integer getAge() { return age; }public void setAge(Integer age) { this.age = age; }public Double getHeight() { return height; }public void setHeight(Double height) { this.height = height; } }

@Table(name = “user_info”, schema = “pangting”)注解中,name代表的是表名,pangting 代表的是库名
2.2 创建dao层映射接口
在springboot包下创建dao包, 并创建UserInfoMapper接口文件
package com.springboot.dao; import com.springboot.entity.UserInfoEntity; import java.util.List; public interface UserInfoMapper {List selectList(); }

spring|搭建springboot+mybatis+freemarker项目
文章图片

2.3 创建xml映射文件
在resources文件夹下创建mapper包, 用来保存xml映射文件, 并且在mapper包下创建UserInfoMapper.xml文件,对应UserInfoEntity实体类.
select info.user_name, info.age, info.height from pangting.user_info as info

spring|搭建springboot+mybatis+freemarker项目
文章图片

2.4安装mybatis插件
spring|搭建springboot+mybatis+freemarker项目
文章图片

spring|搭建springboot+mybatis+freemarker项目
文章图片

spring|搭建springboot+mybatis+freemarker项目
文章图片

点击OK后,需要重启一下, 点击Restart重启
spring|搭建springboot+mybatis+freemarker项目
文章图片

spring|搭建springboot+mybatis+freemarker项目
文章图片

重启之后, 我们会发现, 在映射文件之间多了箭头, 可以直接点过去, 多了箭头, 平时工作时会方便不少
2.5 创建service层业务代码
在springboot包下创建service包, 并创建UserInfoService接口, 接着创建其实现类UserInfoServiceImpl
UserInfoService
package com.springboot.service; import com.springboot.entity.UserInfoEntity; import java.util.List; public interface UserInfoService { List selectList(); }

UserInfoServiceImpl
package com.springboot.service.impl; import com.springboot.dao.UserInfoMapper; import com.springboot.entity.UserInfoEntity; import com.springboot.service.UserInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service("userInfoService") public class UserInfoServiceImpl implements UserInfoService {@Autowired private UserInfoMapper userInfoMapper; @Override public List selectList() { return userInfoMapper.selectList(); } }

spring|搭建springboot+mybatis+freemarker项目
文章图片

spring|搭建springboot+mybatis+freemarker项目
文章图片

2.6 application.properties配置文件添加mybatis配置
#Mybatis配置 #pangting为默认的数据库 spring.datasource.url=jdbc:mysql://localhost:3306/pangting?characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver #实体类所在的包 mybatis.type-aliases-package=com.springboot.entity#driverClassName: com.mysql.cj.jdbc.Driver #mybatis配置文件的位置 mybatis.config-location=classpath:mybatis-config.xml #xml文件所在的包(SQL语句) mybatis.mapper-locations=classpath:mapper/*.xml

spring|搭建springboot+mybatis+freemarker项目
文章图片

2.7 在resources文件夹下创建mybatis-config.xml配置文件

spring|搭建springboot+mybatis+freemarker项目
文章图片

此时, 我们启动项目, 会出现这样的错误
spring|搭建springboot+mybatis+freemarker项目
文章图片

未找到UserInfoMapper这个bean, 原因是spring没有扫描到这个接口文件. 因此, 我们需要在启动类WebApplication
上添加注解@MapperScan(“com.springboot.dao”)
spring|搭建springboot+mybatis+freemarker项目
文章图片

次注解是专门用来扫描Mapper文件的, com.springboot.dao 代表要扫描的包名, 因此 ,我们之后的Mapper文件都写在这个包下
此时再启动项目
spring|搭建springboot+mybatis+freemarker项目
文章图片

启动成功.
修改IndexCtrl中的业务逻辑和login.ftl文件
IndexCtrl
package com.springboot.controller; import com.springboot.entity.UserInfoEntity; import com.springboot.service.UserInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; @Controller public class IndexCtrl { @Autowired private UserInfoService userInfoService; @RequestMapping("admin/login") public String login(Model model) {List userInfoEntities = userInfoService.selectList(); System.out.println(userInfoEntities.toString()); model.addAttribute("userInfoList", userInfoEntities); return "login"; }}

login.ftl
springbootDemo - 锐客网 哈哈哈哈哈哈哈哈<#list userInfoList as user> 姓名: ${user.userName},年龄: ${user.age},身高: ${user.height}

spring|搭建springboot+mybatis+freemarker项目
文章图片

spring|搭建springboot+mybatis+freemarker项目
文章图片

数据库表及数据
spring|搭建springboot+mybatis+freemarker项目
文章图片

【spring|搭建springboot+mybatis+freemarker项目】重启项目,访问http://localhost:8080/admin/login
spring|搭建springboot+mybatis+freemarker项目
文章图片

自此, springboot+mybatis+freemarker项目搭建完成

    推荐阅读