Springboot整合SSM框架详细流程(附:demo查询表中所有数据)
1、Springboot简单介绍
在SpringBoot框架出现之前,Java EE开发最常用的框架是Spring,该框架虽然是轻量级的,但它的配置却是重量级的。SpringBoot是在原有Spring框架的基础上通过注解的方式进一步简化了Spring框架的使用。
我们一般把Spring Boot称为搭建程序的脚手架, 或者说是便捷搭建基于Spring的工程脚手架。其最主要作用就是帮助开发人员快速的构建庞大的spring项目,并且尽可能的减少一切xml配置。
2、SpringMVC注解简单介绍
注解 | 作用 |
---|---|
@Controller | Controller 层注解,主要负责前端控制器发来的请求,并可以返回响应数据给Thymeleaf |
@Service | Service层注解,创建service实现类对象,并存进spring容器中 |
@Repository | Mapper层注解,创建mapper实现类对象,存入spring容器中 |
@ResponseBody | 该方法的返回的结果直接写入HTTP响应正文中 |
@RequestMapping | 来处理请求地址映射,相当于servlet中的@WebServlet |
@Autowired | 可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作 |
3、Mybatis简单介绍
Mybatis是一个优秀的持久层的框架,它对jdbc的操作数据库过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理如加载驱动,创建Connection,创建statement,结果集封装等操作。
4、yml简单介绍
YML文件格式是Spring Boot支持的一种JSON文件格式,相较于传统的Properties配置文件,YML文件以数据为核心,是一种更为直观且容易被识别的数据序列化格式。
application.yml配置文件的工作原理和application.properties是一样的,只不过yml格式配置文件看起来更简洁一些。
application.yml文件使用 “key:(空格)value”格式配置属性,使用缩进控制层级关系。
一、使用IDEA创建工程
- 点击next
- 点击next
- 选择需要的依赖,点击next,然后检查模块名和模块路径,然后点击finish完成工程创建,创建好的工程目录结构如下:
二、Demo:查询表中所有元素
1.先在java文件下的包结构中建立不同的层级结构,建好的层级结构如下:
2.在不同的层级结构目录中创建对应的功能实现代码,并加上注解
- 我们先简单配置一下配置文件application.yml
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql:///数据库名
username: 用户名
password: 密码
thymeleaf:
cache: false #关闭thymeleaf缓存
# mybatis配置
mybatis:
#输出sql
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
- 检查一下依赖是否完善
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
- 在domain包中创建实体类People
@Data //简化实体类结构
public class People {
private Integer id;
private String name;
private String sex;
private Integer age;
}
- 在mapper包中创建接口PeopleMapper,mapper层也相当于Dao层
@Repository
public interface PeopleMapper {
//查询所有人员数据
@Select("select * from people")
List<People> selectAll();
}
- 在service包中创建对应的服务类
public interface IPeopleService {
List<People> selectAll();
}
@Service
public class PeopleServiceImpl implements IPeopleService {
@Autowired
private PeopleMapper peopleMapper;
@Override
public List<People> selectAll() {
return peopleMapper.selectAll();
}
}
- 在controller包中创建对应控制类
@Controller
@RequestMapping("/front") //声明映射路径
public class PeopleController {
@Autowired
private IPeopleService peopleService;
@RequestMapping("/index")//声明映射路径
public String resData(Model model){
//查询数据
List<People> peopleList=peopleService.selectAll();
//将数据集合加入model中
model.addAttribute("peopleList",peopleList);
//使用Thymeleaf模板渲染index页面
return "index";
}
}
- 在templates目录下创建index.html,并声明使用Thymeleaf模板
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1" cellpadding="15" cellspacing="0" bgcolor="#7fff00">
<tr>
<td>编号</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<!--使用Thymeleaf标签,并取出model中的数据-->
<tr th:each="pl:${peopleList}" align="center">
<td th:text="${pl.getId()}"></td>
<td th:text="${pl.getName()}"></td>
<td th:text="${pl.getSex()}"></td>
<td th:text="${pl.getAge()}"></td>
</tr>
</table>
</body>
</html>
- 做到这里,已经大功告成,现在是时候运行程序,打开浏览器输入我们写好的请求映射地址,看一下我们实现的效果了。。。