SpringBoot入门基础学习(一)

目录

一、HelloWord

二、自定义属性配置

三、Controller的使用

四、Spring-date-jpa

五、事务管理

一、HelloWord

1、准备工具:IDEA、MAVEN;

下载idea链接:https://www.jetbrains.com/idea/download/#section=windows(一定要下载旗舰版,只有旗舰版才有直接生成SpringBoot应用的功能)

2、创建项目:

(1)打开软件--->新建一个项目

SpringBoot入门基础学习(一)_第1张图片

(2)选择Spring Initializr--->Next下一步

SpringBoot入门基础学习(一)_第2张图片

(3)填写项目名

SpringBoot入门基础学习(一)_第3张图片

(4)选择springBoot的版本和组件,在这我们只选择Web相关组件

SpringBoot入门基础学习(一)_第4张图片

(5)选择项目名称及保存路径

SpringBoot入门基础学习(一)_第5张图片

(6)项目结构,可删除一些无用的包,如:.mvn、mvnw、mvnw.cmd

SpringBoot入门基础学习(一)_第6张图片

SpringBoot入门基础学习(一)_第7张图片

(7)启动项目方式:ComApplication--->右键启动

SpringBoot入门基础学习(一)_第8张图片

3、编写程序:

(1)新建一个controller包,创建一个HelloController类

SpringBoot入门基础学习(一)_第9张图片

(2)访问:http://localhost:8080/hello

SpringBoot入门基础学习(一)_第10张图片


二、自定义属性配置

1、配置默认端口和访问前缀:在application.properties中配置

server.port=8081
server.servlet.context-path=/springBootLearn
SpringBoot入门基础学习(一)_第11张图片
启动项目,访问:http://localhost:8081/springBootLearn/hello
SpringBoot入门基础学习(一)_第12张图片

2、使用.yml文件格式,配置文件(更加简洁方便:同一前缀不用重复写,注意:冒号后边必须有一个空格)

SpringBoot入门基础学习(一)_第13张图片

访问页面:http://localhost:8082/springBootLearn/hello

SpringBoot入门基础学习(一)_第14张图片

3、配置全局配置参数变量

(1)在.yml文件中定义

SpringBoot入门基础学习(一)_第15张图片

(2)在底层获取,使用@Value注解获取

SpringBoot入门基础学习(一)_第16张图片

(3)页面打印显示

SpringBoot入门基础学习(一)_第17张图片

(4)将配置参数注入到类中

在配置文件中配置属性

SpringBoot入门基础学习(一)_第18张图片

在类中定义同样的属性,只用    @Component 、@ConfigurationProperties(prefix = "student")注解

SpringBoot入门基础学习(一)_第19张图片

使用:

SpringBoot入门基础学习(一)_第20张图片

打印显示:

SpringBoot入门基础学习(一)_第21张图片

4、开发环境与生产环境的不同配置

(1)新建两个配置文件,分别为application-dev.yml、application-prod.yml。三个配置文件配置如下:

application.yml:

spring:profiles:active: dev:表示使用dev开发环境

SpringBoot入门基础学习(一)_第22张图片

application-dev.yml

SpringBoot入门基础学习(一)_第23张图片

application-prod.yml

SpringBoot入门基础学习(一)_第24张图片

访问页面:http://localhost:8081/springBootLearn/hello


三、Controller的使用

1、相关注解

@Controller 处理http请求

@RestController 等同@ResponseBody、@Controller两个注解的组合,用于数据返回json格式

@RequestMapping 配置url映射

(1)@Controller 。使用@Controller 需要在pom.xml添加一个模板。

SpringBoot入门基础学习(一)_第25张图片

(2)创建一个html页面

SpringBoot入门基础学习(一)_第26张图片

(3)底层代码

SpringBoot入门基础学习(一)_第27张图片

(4)访问页面:http://localhost:8081/springBootLearn/hello

SpringBoot入门基础学习(一)_第28张图片

2、@RestController 

(1)代码

SpringBoot入门基础学习(一)_第29张图片

(2)访问页面:http://localhost:8081/springBootLearn/hello

SpringBoot入门基础学习(一)_第30张图片

3、用户访问http://localhost:8081/springBootLearn/hello或http://localhost:8081/springBootLearn/hi两个中的任意一个链接都使用底层同一个方法

(1)底层,在@RequestMapping中使用一个集合

SpringBoot入门基础学习(一)_第31张图片

(2)页面访问

SpringBoot入门基础学习(一)_第32张图片

SpringBoot入门基础学习(一)_第33张图片

4、处理url中的参数

@PathVariable 获取url中的数据

@RequestParam 获取请求参数的值

@GetMapping 组合注解

(1)@PathVariable 举例

底层代码:

SpringBoot入门基础学习(一)_第34张图片

页面:

SpringBoot入门基础学习(一)_第35张图片

(2)@RequestParam 举例

底层代码

SpringBoot入门基础学习(一)_第36张图片

页面:

SpringBoot入门基础学习(一)_第37张图片

@RequestParam设置默认值,required = false表示可以为空, defaultValue = "0"表示默认值为0

底层

SpringBoot入门基础学习(一)_第38张图片

页面

SpringBoot入门基础学习(一)_第39张图片

(3)@GetMapping ,将

@RequestMapping(value = "/hello", method = RequestMethod.GET)简化成@GetMapping(value = "/hello" )
@RequestMapping(value = "/hello", method = RequestMethod.POST)简化成@PostMapping(value = "/hello" )
底层代码
SpringBoot入门基础学习(一)_第40张图片

页面访问

SpringBoot入门基础学习(一)_第41张图片

四、Spring-date-jpa

1、链接数据库

(1)Spring-Date-Jpa:是定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate、TopLink等。

(2)配置pom.xml

SpringBoot入门基础学习(一)_第42张图片

(3)配置数据库链接

SpringBoot入门基础学习(一)_第43张图片

(4)先创建数据库dbstudent

SpringBoot入门基础学习(一)_第44张图片

(5)程序自动建表:新建一个类,需要使用@Entity注解

SpringBoot入门基础学习(一)_第45张图片

(6)启动项目,则会生成一张student表,里边的字段与我们类中定义的一致

SpringBoot入门基础学习(一)_第46张图片

2、数据库操作

(1)查询学生列表

在数据库中准备几条数据

SpringBoot入门基础学习(一)_第47张图片

创建一个接口,JpaRepository中填写类名和id的类型

SpringBoot入门基础学习(一)_第48张图片

创建一个Controller

SpringBoot入门基础学习(一)_第49张图片

在PostMan中测试

SpringBoot入门基础学习(一)_第50张图片

(2)新增一个学生,可以直接传一个对象,但是注意参数命名和类中的属性保持一致

SpringBoot入门基础学习(一)_第51张图片

Postman中测试

SpringBoot入门基础学习(一)_第52张图片

查看数据库

SpringBoot入门基础学习(一)_第53张图片

(3)根据id查询一个学生信息,原本可以直接用findone(Id)查询,自从spring boot 2.0以后,由于用上了Java 8 的Option,废除了findone(Id)。

SpringBoot入门基础学习(一)_第54张图片

Postman中测试

SpringBoot入门基础学习(一)_第55张图片

(3)更新一个学生信息,save方法,当添加的类数据中的id在数据库中没有就会新增一条数据;当id在数据库中有,则会做修改操作。

SpringBoot入门基础学习(一)_第56张图片

查看数据库

SpringBoot入门基础学习(一)_第57张图片

Postman中测试

SpringBoot入门基础学习(一)_第58张图片

查看数据库

SpringBoot入门基础学习(一)_第59张图片

(4)根据ID删除一个学生

SpringBoot入门基础学习(一)_第60张图片

查看数据库

SpringBoot入门基础学习(一)_第61张图片

Postmen测试

SpringBoot入门基础学习(一)_第62张图片

查看数据库

SpringBoot入门基础学习(一)_第63张图片

(5)扩展:根据年龄查询学生。

在接口中定义方法,方法名findByAge不能随意写,必须遵循格式

SpringBoot入门基础学习(一)_第64张图片

调用

SpringBoot入门基础学习(一)_第65张图片

查看数据库

SpringBoot入门基础学习(一)_第66张图片

Postman测试

SpringBoot入门基础学习(一)_第67张图片

五、事务管理

我们在日常开发中经常会遇到这样的问题,一个方法同时新增两条数据,若第一条插入成功,在插入第二条的时候报错失败了,那么第一条也不能插入到数据库中,要么都新增成功,要么都新增不成功。

1、新增一个service

SpringBoot入门基础学习(一)_第68张图片

2、在controller调用

SpringBoot入门基础学习(一)_第69张图片

3、为了更好的演示,我们修改一下数据库,将name属性只允许插入长度为2

SpringBoot入门基础学习(一)_第70张图片

SpringBoot入门基础学习(一)_第71张图片

4、在没设置事务的情况下,第一条数据中可以新增成功,第二条数据添加失败,我们用Postmen测试

数据库

SpringBoot入门基础学习(一)_第72张图片

SpringBoot入门基础学习(一)_第73张图片

数据库

SpringBoot入门基础学习(一)_第74张图片

4、解决方法:在接口中添加注解@Transactional

SpringBoot入门基础学习(一)_第75张图片


本次分享结束,不足之处请大家提出宝贵意见,有问题可留言讨论,谢谢观看。

你可能感兴趣的:(idea开发工具)