Springboot学习


前言

Springboot2学习应用:

记录Springboot的学习过程


正文

一、Springboot是什么?

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
在这里插入图片描述

在这里插入图片描述

二、学习内容

1. IDEA创建Springboot项目

在这里插入图片描述
在这里插入图片描述

1.1 配置maven仓库地址为本地仓库

在这里插入图片描述

1.2 开发环境热部署

代码修改后自动重启服务

在这里插入图片描述

1.2.1 pom.xml中添加依赖

在这里插入图片描述

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
1.2.2 application.properties中配置devtools

在这里插入图片描述

#热部署生效
spring.devtools.restart.enabled=true
#设置重启目录
spring.devtools.restart.additional-paths=src/main/java
#设置classpath目录下的WEB-INF文件夹内容修改不重启
spring.devtools.restart.exclude=static/**
1.2.3 修改IDEA settings

在这里插入图片描述
IDEA 2021之后版本第二步

在这里插入图片描述

2. 重要注解的使用

2.1 Controller(控制器)

前后端分离项目使用 @RestController在这里插入图片描述

2.1.1 @RestController的用法

在这里插入图片描述

2.2 路由映射

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.文件上传 && 拦截器

3.1 Springboot实现文件上传

在这里插入图片描述
在这里插入图片描述

3.2 拦截器

3.2.1 介绍

在这里插入图片描述
在这里插入图片描述

3.2.2 定义

在这里插入图片描述

3.2.3 注册

在这里插入图片描述

4. RESTful

4.1 介绍

在这里插入图片描述

4.2 特点

在这里插入图片描述

4.3 API

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.4 Spring实现RESTful API

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.5 Swagger的使用

4.5.1 介绍

在这里插入图片描述

4.5.2 使用&配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.5.3 接口测试

在这里插入图片描述

4.5.4 常用注解

在这里插入图片描述

5. MybatisPlus

5.1 ORM介绍

在这里插入图片描述

5.2 MybatisPlus 介绍

在这里插入图片描述

5.3 使用配置

5.3.1 添加依赖
 		<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.31</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.20</version>
        </dependency>
5.3.2 配置数据库相关信息

在这里插入图片描述

//配置数据库相关信息
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false
spring.datasource.username=root
spring.datasource.password=1591103935
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
5.3.3 启动类中添加@MapperScan注解

在这里插入图片描述

5.4 MyBatis的常用注解

在这里插入图片描述

5.5 增删改查小案例

项目目录

在这里插入图片描述

简单的user表的增删改查的操作

(1)编写实体类User.java

记得写setter,getter,tostring

public class User {
private int id;
private String username;
private String password;
private String birthday;
}
(2)编写UserMapper接口,加入以下增删改查方法
@Mapper
public interface UserMapper {
	@Insert("insert into user values(#{id},#{username},#{password},#
	{birthday})")
	int add(User user);
	@Update("update user set username=#{username},password=#
	{password},birthday=#{birthday} where id=#{id}")
	int update(User user);
	@Delete("delete from user where id=#{id}")
	int delete(int id);
	@Select("select * from user where id=#{id}")
	User findById(int id);
	@Select("select * from user")
	List<User> getAll();
}
(3)控制器实现

创建UserController控制器,在控制器中注入UserMapper实例,注意!一定要添加 @MapperScan注解,否则无法注入mapper实例。

public class UserController {
	@Autowired //自动注入,Spring会自动实例化UserMapper,并注入此属性中(依赖注入)
	private UserMapper userMapper;
}
(4)添加控制器方法,测试增删改查操作。
// 添加用户:localhost:8080/add?id=100&username=zhangsan&password=123&birthday=2020-11-12
	@GetMapping("add")
	public String add(User user){
		int i = userMapper.add(user);
		System.out.println(user);
		if(i > 0){
		return "添加成功";
		}else{
		return "添加失败";
		}
	}
// 更新用户:localhost:8080/update?id=100&username=lisi&password=123&birthday=2020-11-12
	@GetMapping("update")
	public String update(User user){
		int i = userMapper.update(user);
		if(i > 0){
		return "更新成功";
		}else{
		return "更新失败";
		}
	}
// 删除用户:localhost:8080/del?id=100
	@GetMapping("del")
	public String del(int id){
		int i = userMapper.delete(id);
		if(i > 0){
		return "删除成功";
		}else{
		return "删除失败";
		}
	}
// 查询单个用户:localhost:8080/find?id=1
	@GetMapping("find")
	public User findById(int id){
		User user = userMapper.findById(id);
		return user;
	}
// 查询所有用户:localhost:8080/findAll
	@GetMapping("findAll")
	public List findAll(){
		return userMapper.getAll();
	}

5.6 MyBatis的注解实现复杂映射开发

在这里插入图片描述

5.6.1 一对一查询模型
(1)创建Order和User实体

切记要添加setter,getter,tostring()

public class Order {
	private int id;
	private Date ordertime;
	private double total;
	//代表当前订单从属于哪一个客户
	private User user;
}
public class User {
	private int id;
	private String username;
	private String password;
	private String birthday;
}
(2) 使用注解配置OrderMapper,UserMapper
@Mapper
public interface OrderMapper {
	@Select("select * from orders")
	@Results({
	@Result(column = "id",property = "id"),
	@Result(column = "ordertime",property = "ordertime"),
	@Result(column = "total",property = "total"),
	@Result(column = "uid",property = "user",javaType = User.class,
		one = @One(select = "com.xx.mapper.UserMapper.findById")
	),
	})
	List<Order> findAll();
}
public interface UserMapper {
	@Select("select * from user where id=#{id}")
	User findById(int id);
}
(3)创建OrderController测试
@RestController
public class OrderController {
	@Autowired
	private OrderMapper orderMapper;
	@GetMapping("order")
	public List<Order> find(){
		return orderMapper.findAll();
	}
}
5.6.2 一对多查询模型
(1)修改User,order实体

记得添加新增属性的setter,gettter,tostring

public class Order {
	private int id;
	private String ordertime;
	private double total;
//代表当前订单从属于哪一个客户
	private User user;
}
public class User {
	private int id;
	private String username;
	private String password;
	private String birthday;
//代表当前用户具备哪些订单
	private List<Order> orders;
}
(2)使用注解配置Mapper
public interface UserMapper {
	@Select("select * from user")
	@Results({
	@Result(column = "id",property = "id"),
	@Result(column = "username",property = "username"),
	@Result(column = "password",property = "password"),
	@Result(column = "id",property = "orders",javaType = List.class,
		many=@Many(select = "com.xx.mapper.OrderMapper.findByUid")
	)
})
	List<User> findAllUserAndOrder();
}
public interface OrderMapper {
	@Select("select * from orders where uid=#{uid}")
	List<Order> findByUid(int uid);
}
(3)在UserController中测试
// 查询所有用户:localhost:8080/findAll
@GetMapping("findAll")
	public List findAll(){
	return userMapper.findAllUserAndOrder();
}

6.Vue

Vue.js官网

6.1 Vue组件化开发

在这里插入图片描述在这里插入图片描述

6.1.1 NPM

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

6.1.2 Vue CLI使用

在这里插入图片描述

(1)安装

在要创建项目的文件夹下打开CMD输入 npm install -g @vue/cli

(2)创建项目
vue create xxx(项目名称) 

7.Axios

7.1 简介

在这里插入图片描述

7.2 跨域问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述以上为创建一个配置类实现全局配置,也可以在控制器中单独加入注解@Configration可解决该控制器下的跨域问题

7.3 与Vue整合

在main.js中配置
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

8. VueRouter

VueRouter
在这里插入图片描述

9. Vuex

在这里插入图片描述

9.1 State

在这里插入图片描述

总结

持续学习中…

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值