Spring Boot简介
Spring Boot 是由 Pivotal 团队提供用来简化 Spring 的搭建和开发过程的全新框架。随着近些年来微服务技术的流行,Spring Boot 也成了时下炙手可热的热点技术。Spring Boot 去除了大量的 xml 配置文件,简化了复杂的依赖管理,配合各种 starter 使用,基本上可以做到自动化配置。Spring 可以做的事情,现在用 Spring boot 都可以做。
优点:
- 创建独立的Spring应用程序
- 嵌入的Tomcat,无需部署WAR文件
- 简化Maven配置
- 自动配置Spring
- 提供生产就绪型功能,如指标,健康检查和外部配置
- 绝对没有代码生成和对XML没有要求配置
搭建第一个项目
Spring Boot项目的我们通常是用MVC模式的分层结构去梳理和区分业务,下面会演示一下搭建一个完整清凉的spring boot基础项目。
新建项目
到这里我们就完成了一个maven项目的创建。
配置maven依赖
引入spring boot基础依赖,作为入门的demo,我在这里只引入了一些最基础的依赖。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xiaofeixia</groupId>
<artifactId>first</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- spring boot版本 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.13.RELEASE</version>
</parent>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- spring boot web项目基础依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--spring boot测试工具(可不添加)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<!-- MySQL依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
Application类
新建Spring boot启动类
@SpringBootApplication
public class StartApplication {
public static void main(String[] args) {
SpringApplication.run(StartApplication.class,args);
}
}
右键运行StartApplication启动Spring Boot项目
浏览器输入http://localhost:8080访问项目
到这里你的第一个Spring Boot项目就启动成功了。
application配置
# 设置端口
server:
port: 8888
# spring设置
spring:
application:
name: first
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/first?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true
username: root
password: root
# mybatis配置
mybatis:
mapper-locations: classpath:/mybatis/*.xml
创建数据库
新建first数据库,新建user表
代码实现类(上代码)
创建User实体类
public class User {
private Integer id;
private String name;
private Integer sex;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
创建dao层
@Mapper
public interface UserMapper {
int addUser(User user);
int updateUser(User user);
int deleteUser(Integer id);
User selectById(Integer id);
List<User> selectAll();
}
创建mapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xiaofeixia.dao.UserMapper">
<insert id="addUser" parameterType="com.xiaofeixia.pojo.User">
insert into user (name,sex,age)
values (#{name,jdbcType=VARCHAR},#{sex,jdbcType=INTEGER},#{age,jdbcType=INTEGER})
</insert>
<update id="updateUser" parameterType="com.xiaofeixia.pojo.User">
update user
set name = #{name,jdbcType=VARCHAR},
sex = #{sex,jdbcType=INTEGER},
age = #{age,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</update>
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from user
where id = #{id,jdbcType=INTEGER}
</delete>
<select id="selectById" parameterType="java.lang.Integer">
select *
from user
where id = #{id,jdbcType=INTEGER}
</select>
<select id="selectAll" resultType="com.xiaofeixia.pojo.User">
select *
from user
</select>
</mapper>
创建service层
public interface UserService {
int addUser(User user);
int updateUser(User user);
int deleteUser(Integer id);
User selectById(Integer id);
List<User> selectAll();
}
创建service实现层
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserMapper userMapper;
@Override
public int addUser(User user) {
return userMapper.addUser(user);
}
@Override
public int updateUser(User user) {
return userMapper.updateUser(user);
}
@Override
public int deleteUser(Integer id) {
return userMapper.deleteUser(id);
}
@Override
public User selectById(Integer id) {
return userMapper.selectById(id);
}
@Override
public List<User> selectAll() {
return userMapper.selectAll();
}
}
创建controller层
@RestController
@RequestMapping(value = "user")
public class UserController {
@Resource
private UserService userService;
@PostMapping("add")
public String add(User user){
userService.addUser(user);
return "succ";
}
@PostMapping("update")
public String update(User user){
userService.updateUser(user);
return "succ";
}
@PostMapping("detail")
public String detail(Integer id){
userService.selectById(id);
return "succ";
}
@PostMapping("delete")
public String delete(Integer id){
userService.deleteUser(id);
return "succ";
}
@PostMapping("list")
@ResponseBody
public List<User> list(){
List<User> list = userService.selectAll();
return list;
}
}
接口测试
使用postman对接口进行测试
user/add:添加数据接口
user/update:更新数据接口
user/delete:删除数据接口
user/detail:查看数据详情接口
user/list:查看数据列表接口
在这里说一下,平时在写项目的时候对于接口规范需要注意,不清楚的可以看看restful编程,没有统一的书写规范项目看起来会比较恶心,而且项目较大和接口较多的时候不便查找。
总结
至此,恭喜你完成了你的第一个spring boot + mybatis项目,关于项目用的的各种注解也是spring的核心机制之一,这大大的提高了编程的效率,也让我们把更多精力放在具体的业务逻辑中,不必再为繁琐的配置文件所困扰。但这些注解背后的运行机制和实现原理有兴趣的小伙伴可以去了解一下,在这里我就不展开讲了,之后的文章更新会和大家一起分享~~