目录
一、HelloWord
二、自定义属性配置
三、Controller的使用
四、Spring-date-jpa
五、事务管理
1、准备工具:IDEA、MAVEN;
下载idea链接:https://www.jetbrains.com/idea/download/#section=windows(一定要下载旗舰版,只有旗舰版才有直接生成SpringBoot应用的功能)
2、创建项目:
(1)打开软件--->新建一个项目
(2)选择Spring Initializr--->Next下一步
(3)填写项目名
(4)选择springBoot的版本和组件,在这我们只选择Web相关组件
(5)选择项目名称及保存路径
(6)项目结构,可删除一些无用的包,如:.mvn、mvnw、mvnw.cmd
(7)启动项目方式:ComApplication--->右键启动
3、编写程序:
(1)新建一个controller包,创建一个HelloController类
(2)访问:http://localhost:8080/hello
1、配置默认端口和访问前缀:在application.properties中配置
server.port=8081
server.servlet.context-path=/springBootLearn
启动项目,访问:http://localhost:8081/springBootLearn/hello
2、使用.yml文件格式,配置文件(更加简洁方便:同一前缀不用重复写,注意:冒号后边必须有一个空格)
访问页面:http://localhost:8082/springBootLearn/hello
3、配置全局配置参数变量
(1)在.yml文件中定义
(2)在底层获取,使用@Value注解获取
(3)页面打印显示
(4)将配置参数注入到类中
在配置文件中配置属性
在类中定义同样的属性,只用 @Component 、@ConfigurationProperties(prefix = "student")注解
使用:
打印显示:
4、开发环境与生产环境的不同配置
(1)新建两个配置文件,分别为application-dev.yml、application-prod.yml。三个配置文件配置如下:
application.yml:
spring:profiles:active: dev:表示使用dev开发环境
application-dev.yml
application-prod.yml
访问页面:http://localhost:8081/springBootLearn/hello
1、相关注解
@Controller 处理http请求
@RestController 等同@ResponseBody、@Controller两个注解的组合,用于数据返回json格式
@RequestMapping 配置url映射
(1)@Controller 。使用@Controller 需要在pom.xml添加一个模板。
(2)创建一个html页面
(3)底层代码
(4)访问页面:http://localhost:8081/springBootLearn/hello
2、@RestController
(1)代码
(2)访问页面:http://localhost:8081/springBootLearn/hello
3、用户访问http://localhost:8081/springBootLearn/hello或http://localhost:8081/springBootLearn/hi两个中的任意一个链接都使用底层同一个方法
(1)底层,在@RequestMapping中使用一个集合
(2)页面访问
4、处理url中的参数
@PathVariable 获取url中的数据
@RequestParam 获取请求参数的值
@GetMapping 组合注解
(1)@PathVariable 举例
底层代码:
页面:
(2)@RequestParam 举例
底层代码
页面:
@RequestParam设置默认值,required = false表示可以为空, defaultValue = "0"表示默认值为0
底层
页面
(3)@GetMapping ,将
@RequestMapping(value = "/hello", method = RequestMethod.GET)简化成@GetMapping(value = "/hello" )
@RequestMapping(value = "/hello", method = RequestMethod.POST)简化成@PostMapping(value = "/hello" )
底层代码
页面访问
1、链接数据库
(1)Spring-Date-Jpa:是定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate、TopLink等。
(2)配置pom.xml
(3)配置数据库链接
(4)先创建数据库dbstudent
(5)程序自动建表:新建一个类,需要使用@Entity注解
(6)启动项目,则会生成一张student表,里边的字段与我们类中定义的一致
2、数据库操作
(1)查询学生列表
在数据库中准备几条数据
创建一个接口,JpaRepository中填写类名和id的类型
创建一个Controller
在PostMan中测试
(2)新增一个学生,可以直接传一个对象,但是注意参数命名和类中的属性保持一致
Postman中测试
查看数据库
(3)根据id查询一个学生信息,原本可以直接用findone(Id)查询,自从spring boot 2.0以后,由于用上了Java 8 的Option,废除了findone(Id)。
Postman中测试
(3)更新一个学生信息,save方法,当添加的类数据中的id在数据库中没有就会新增一条数据;当id在数据库中有,则会做修改操作。
查看数据库
Postman中测试
查看数据库
(4)根据ID删除一个学生
查看数据库
Postmen测试
查看数据库
(5)扩展:根据年龄查询学生。
在接口中定义方法,方法名findByAge不能随意写,必须遵循格式
调用
查看数据库
Postman测试
五、事务管理
我们在日常开发中经常会遇到这样的问题,一个方法同时新增两条数据,若第一条插入成功,在插入第二条的时候报错失败了,那么第一条也不能插入到数据库中,要么都新增成功,要么都新增不成功。
1、新增一个service
2、在controller调用
3、为了更好的演示,我们修改一下数据库,将name属性只允许插入长度为2
4、在没设置事务的情况下,第一条数据中可以新增成功,第二条数据添加失败,我们用Postmen测试
数据库
数据库
4、解决方法:在接口中添加注解@Transactional
本次分享结束,不足之处请大家提出宝贵意见,有问题可留言讨论,谢谢观看。