目录
5.4 案例:请求参数直接写到url里,(需要再方法的映射注解里体现{ })
5.5案例:多个url 访问同一个方法(加{ ,}类似数组写法)
一、spring boot的入门学习
1.学习内容的版本要求
- java:1.8
- MySQL:5.5.40
- maven:3.3
- spring boot :2.2.1(保持一致)
2.spring boot简介
spring boot是为解决spring越来越复杂配置和坐标管理。
特点:
- 简化初始搭建以开发过程
- 不再需要定义样板化的配置(如配置数据库时只有小部分需要改动,大部分不变的配置)
- 快速应用开发
技术特点:
- 开箱即用(像main函数一样,快速启动使用)
- 约定优于配置(多数不变的配置按照应用默认的直接使用,比如:端口使用8080)
3.spring boot版本
CURRENT:最新版本
GA:稳定版本
SNAPSHOT:快照版,每天更新的版本
注:版本可以先选择现有的稳定版本,创建项目后再重新更改到所需要的2.2.1版
4.idea创建
4.1如图示:
4.2选择要代入的依赖
springboot的版本可以随意选择,我们可以创建项目后再pox.xml里更改即可
如下即创建完成:
- 上面是springboot的三个基础文件:入口(SpringbootApplication)、配置文件(application.properties)、测试入口(SpringbootApplicationTests)
- 入口类和测试入口类都可以直接运行启动当前创建的项目
4.3.更改pox.xml 里的springboot的版本
更新maven后可以报错
未找到插件 'org.springframework.boot:spring-boot-maven-plugin:'
解决:给插件添加版本信息即可
5.案例(Controller层):
5.1 创建一个controller
@RestController 是@ResponseBody和@Controller的组合注解 ,作用是1.将json数据转换为Java对象,2.声明它是一个控制器 ,处理http请求
@GetMapping接收get映射
5.2启动入口
5.3 案例:请求参数
@RequestParam 作用:从请求参数中找到与方法参数名一致的请求参数,再进行绑定
5.4 案例:请求参数直接写到url里,(需要再方法的映射注解里体现{ })
@PathVariable:从url里寻找对应的参数并进行绑定
5.5案例:多个url 访问同一个方法(加{ ,}类似数组写法)
5.6案例:默认参数
用户传入即使用用户的参数
6.补充:web项目的三层结构
- Controller:对外暴露接口,仅进行简单逻辑判断
- Service: 在复杂业务场景下,对业务逻辑做一层抽象和封装,保持Controller简洁和独立,(抽象出来Service可以被多个Controller重复调用)
- Dao: 和数据库有关的
7.配置文件
7.1(.properties写法)
重新配置端口和虚拟路径
注:可能会出现错误:
Identify and stop the process that's listening on port 8081 or configure this application to listen on another port.
代表了该8081端口被占用了,改成其他端口即可
7.1(.yml写法,需要在.yml文件下配置)
https://www.toyaml.com/index.html(properties转换yml网站)
server:
port: 85
servlet:
context-path: /first
。。。未完待续
8.自定义配置
8.1 在配置文件里配置
server.port=8080
server.servlet.context-path=/first
school.user.name=xiaomi
school.user.age=21
8.2 创建controller
@RestController
public class PropertiesController {
@Value("${school.user.name}")
String name;
@Value("${school.user.age}")
Integer age;
@GetMapping("/user")
public String user(){
return "名字:"+name+" "+"年龄:"+age;
}
}
但一般不会这么写
==========================================================
8.3 创建一个配置类
@Component :将实体类扫描进ioc容器中
@ConfigurationProperties :配置属性的前缀(与配置文件属性前缀一致后)
8.4 使用实体类,并自动导入
@Autowired
private SchoolUser schoolUser;
@GetMapping("/user")
public String user(){
return "名字:"+schoolUser.name+" "+"年龄:"+schoolUser.age;
}
9.完整的web结构案例
案例:学生信息查询
9.1创建数据库
CREATE TABLE student(
id INT(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
NAME VARCHAR(255) NOT NULL COMMENT '名字',
PRIMARY KEY(id)
)
9.2添加依赖
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!--sql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
9.3在配置文件设置数据库
#数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/springbootlearn?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
9.4 创建实体类
9.5 创建dao接口
9.6创建service
9.7 创建controller
9.8控制台报错
1.错误:4:46 java: 程序包org.springframework.boot.autoconfigure不存在
解决:
2.错误:Access denied for user ''@'localhost' (using password: NO)
解决:一开始配置错误:
改正后解决:
二、spring boot电商项目实战