1. 创建springboot web项目 先创建一个项目
文章图片
选择maven项目,先什么都不勾,直接点击next
文章图片
groupid和artifactid可以随便填,然后点击next
文章图片
点击finish
文章图片
finish之后弹出的项目在右下角一般都会有这个弹框,询问你是否要引入依赖,我们选择自动引入
文章图片
初始项目是这样的
文章图片
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文件是这样的
文章图片
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/
文章图片
从application.properties配置文件中的spring.freemarker.template-loader-path属性可以看出,我们是要把ftl文件保存在templates文件夹下的,因此,我们在resources文件夹下创建templates文件夹,用来存放ftl文件,并创建login.ftl文件
4. 创建login.ftl文件
随意添加一下内容
springbootDemo - 锐客网
哈哈哈哈哈哈哈哈
文章图片
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启动类
文章图片
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";
}
}
文章图片
7. 启动WebApplication
运行WebApplication中的main方法,启动springboot web项目
文章图片
启动成功。
访问http://localhost:8080/admin/login
文章图片
看到这样,说明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();
}
文章图片
2.3 创建xml映射文件
在resources文件夹下创建mapper包, 用来保存xml映射文件, 并且在mapper包下创建UserInfoMapper.xml文件,对应UserInfoEntity实体类.
select
info.user_name,
info.age,
info.height
from
pangting.user_info as info
文章图片
2.4安装mybatis插件
文章图片
文章图片
文章图片
点击OK后,需要重启一下, 点击Restart重启
文章图片
文章图片
重启之后, 我们会发现, 在映射文件之间多了箭头, 可以直接点过去, 多了箭头, 平时工作时会方便不少
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();
}
}
文章图片
文章图片
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
文章图片
2.7 在resources文件夹下创建mybatis-config.xml配置文件
文章图片
此时, 我们启动项目, 会出现这样的错误
文章图片
未找到UserInfoMapper这个bean, 原因是spring没有扫描到这个接口文件. 因此, 我们需要在启动类WebApplication
上添加注解@MapperScan(“com.springboot.dao”)
文章图片
次注解是专门用来扫描Mapper文件的, com.springboot.dao 代表要扫描的包名, 因此 ,我们之后的Mapper文件都写在这个包下
此时再启动项目
文章图片
启动成功.
修改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}
#list>
文章图片
文章图片
数据库表及数据
文章图片
【spring|搭建springboot+mybatis+freemarker项目】重启项目,访问http://localhost:8080/admin/login
文章图片
自此, springboot+mybatis+freemarker项目搭建完成
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- =======j2ee|spring用注解实现注入的@resource,@autowired,@inject区别
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])