Spring Boot可以轻松创建可以运行的独立的,生产级的基于Spring的应用程序。我们对Spring平台和第三方库进行了一种自以为是的观点,这样您就可以轻松上手了。大多数Spring Boot应用程序只需要很少的Spring配置。
您可以使用Spring Boot创建可以使用java -jar或更传统的war部署启动的Java应用程序 。我们还提供了一个运行“spring脚本”的命令行工具。
主要目标是:
为所有Spring开发提供从根本上更快且可广泛访问的入门体验。
开箱即用,但随着需求开始偏离默认值而迅速摆脱困境。
提供大型项目(例如嵌入式服务器,安全性,度量标准,运行状况检查和外部化配置)通用的一系列非功能性功能。
绝对没有代码生成,也不需要XML配置。
![](https://i-blog.csdnimg.cn/blog_migrate/af54e546fbb4543ee7f393487e8a4baf.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/cc7d3b194b86eb41355502dd6dd23412.jpeg)
只勾选web
![](https://i-blog.csdnimg.cn/blog_migrate/da8fba7c5089d1ecb3333a8b6744eafb.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/a76941b43866c51785320b00e8e48153.jpeg)
pom文件中相关的依赖
![](https://i-blog.csdnimg.cn/blog_migrate/c856b5538bc88e0bbdaf6a0c9997a077.jpeg)
项目目录结构:
![](https://i-blog.csdnimg.cn/blog_migrate/05680f7685783d5faef46450f1d22820.jpeg)
程序启动入口SpringBootApplication
![](https://i-blog.csdnimg.cn/blog_migrate/e175c09d681075add5bd70ec6bcaab39.jpeg)
启动项目:
![](https://i-blog.csdnimg.cn/blog_migrate/6b9c06307724e0a1d35f95c3b517d430.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/f8472a86a9c794d05e8ba32e78892d2f.jpeg)
有日志信息可以看出,tomcat已经启动 端口为8080,所以我们在浏览器中打开这个url
![](https://i-blog.csdnimg.cn/blog_migrate/01ee2cd55fd165b95e4f57c286684c19.jpeg)
测试:
![](https://i-blog.csdnimg.cn/blog_migrate/72d8d14ca7e041f1a8ef40a03da56f7c.jpeg)
访问该地址127.0.0.1:8080/hello
![](https://i-blog.csdnimg.cn/blog_migrate/f878358515367e71bce08ed46ea4a153.jpeg)
我们也可以使用命令行的方式启动项目,进入项目所在的目录 输入mvn spring-boot:run
![](https://i-blog.csdnimg.cn/blog_migrate/07581accbafce04e158a42a9f5d55acb.jpeg)
关于项目属性的配置
![](https://i-blog.csdnimg.cn/blog_migrate/1d3a3e0d0f791dd9ec7d71808f9970f2.jpeg)
或者也可以这样写(保留任意一个配置文件即可)
![](https://i-blog.csdnimg.cn/blog_migrate/937aab2bb4dccb393ce3916bf9a4805d.jpeg)
测试:
![](https://i-blog.csdnimg.cn/blog_migrate/1caaf797029bebf593739a21713ff8d5.jpeg)
从配置文件中获取值:
![](https://i-blog.csdnimg.cn/blog_migrate/2f65172d4c8b8b9df452ded017a556ba.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/983d63b98136350908df250532b0f214.jpeg)
测试:
![](https://i-blog.csdnimg.cn/blog_migrate/d7760d11ba784c8c05ae2496e391008f.jpeg)
在配置文件中使用配置文件的值:
![](https://i-blog.csdnimg.cn/blog_migrate/4bcb53d3ed50583ffcddff3c046f6942.jpeg)
但是这样配置,当一个类属性过多时,就会显得异常繁琐,所以我们可以使用如下方式:
创建bean
![](https://i-blog.csdnimg.cn/blog_migrate/50a92d6e8950057e303ce08c35b78a02.jpeg)
在applcation.yml添加信息
![](https://i-blog.csdnimg.cn/blog_migrate/1373d4b6f0966c1f3bf90168f5088b83.jpeg)
测试:
![](https://i-blog.csdnimg.cn/blog_migrate/a91465f8f4a732b0d43b092131ef58fe.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/016005cf55bc970b26fa6e0a3098235c.jpeg)
多个配置文件的调用:
将application.yml复制两份至当前目录,修改部分参数值,以做测试:
![](https://i-blog.csdnimg.cn/blog_migrate/feebc5aff05003b83a279fd41755fbdb.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/506548000cceeca1ca9342093cf764af.jpeg)
、
然后再application.yml中调用dev配置文件
![](https://i-blog.csdnimg.cn/blog_migrate/235d1be7bfa36da1fe029e5fca4617ae.jpeg)
测试:
![](https://i-blog.csdnimg.cn/blog_migrate/f160df1f9d3bf18779d590eb5fd89067.jpeg)
注意:@RestController相当于@Controller和@ResponseBody组合
多个url访问同一个页面可以集合的方式,如下:
![](https://i-blog.csdnimg.cn/blog_migrate/275cb428b20a553d8eea426861b2d9bd.jpeg)
获取url中的值:
![](https://i-blog.csdnimg.cn/blog_migrate/8aa228ac00f5072e0312f8610aae57e9.jpeg)
测试:
![](https://i-blog.csdnimg.cn/blog_migrate/55f2707ed13296bcb2448b8ef4f13d70.jpeg)
需要注意的是这个id写在hi的前后都无所谓,都可以拿到值,只是访问的路径不同而已
比较传统的访问方式拿到url值
![](https://i-blog.csdnimg.cn/blog_migrate/5e13b471f79aea0fd9e126c9439660e8.jpeg)
测试:
![](https://i-blog.csdnimg.cn/blog_migrate/e6993a8052dba9e3201c9b739188b36f.jpeg)
required表示参数是否必传,defaultValue代表默认值(String)
![](https://i-blog.csdnimg.cn/blog_migrate/da550c2b7c9e29dfba87731d96a65b96.jpeg)
测试:
![](https://i-blog.csdnimg.cn/blog_migrate/b9facbefac7211d4e098bb53546b7c93.jpeg)
组合注解@GetMapping 功能是一样的
![](https://i-blog.csdnimg.cn/blog_migrate/755ec786cee328d910f0a67729e1eb36.jpeg)
关于数据库的操作 Spring-Data-Jpa
需要在pom文件中添加相关的依赖:注意:spring-boot不用添加jar 的版本 各位不要瞎搞
![](https://i-blog.csdnimg.cn/blog_migrate/107497aec4b737aa913d6de60fa61a32.jpeg)
在application.yml文件中添加配置信息
![](https://i-blog.csdnimg.cn/blog_migrate/848aede7070c5e93c7ba3465f8225f75.jpeg)
在数据库中自动创建表,新建实体类Boy
![](https://i-blog.csdnimg.cn/blog_migrate/8f06546d8e4c811ebdf3cec4808e6d9f.jpeg)
重新启动服务器,刷新数据库
![](https://i-blog.csdnimg.cn/blog_migrate/008544110806bd8f0fb3eb4da232c2b8.jpeg)
需要注意的是:当配置文件ddl-auto: create时每次启动都会重新创建表,里面的数据会被清空,所以我们换成update(hibernate基础知识)
spring - boot curd的基本操作
Integer代表ID的类型
Boy代表实体类
![](https://i-blog.csdnimg.cn/blog_migrate/e33489752bf10d6d864ab15f4bb3642b.jpeg)
编写conreoller
查找所有用户
![](https://i-blog.csdnimg.cn/blog_migrate/069e6471827ed6cd90a9bbcf0adc50f1.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/484b5444a99b18ed6c1b8577b3979477.jpeg)
存入一个用户:
![](https://i-blog.csdnimg.cn/blog_migrate/5e616b588370941bb4c8ad94fab32041.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/88df9e4ab752916eadb478789ffa9db2.jpeg)
查找一个用户:
![](https://i-blog.csdnimg.cn/blog_migrate/4d473858631f3cf52ab76b4e8a3fd1b6.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/6bd363c69276d2ed5a5d76ce94385cfc.jpeg)
删除一个用户:
![](https://i-blog.csdnimg.cn/blog_migrate/096868e9b64305f15c474075861cb426.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/eec44b00d7c018bffca5c600f151fba1.jpeg)
更新一个用户的信息:
![](https://i-blog.csdnimg.cn/blog_migrate/1017b6a6295ec3d016dca08971a09e6c.jpeg)
注意:注意提交数据的格式 当数据库没有这个id时,就会新增这个用户,而不会执行更新操作
![](https://i-blog.csdnimg.cn/blog_migrate/4ea51e65d5f3a32bc5bbb1049d85c6c5.jpeg)
以上的查询都是基于ID的,假如我们想通过其他的字段查询,该怎么做呢
注意命名的规范性,不然写出来的东西就是来搞笑的
![](https://i-blog.csdnimg.cn/blog_migrate/00364bbbcbf1e0d16e235a5e85fcb88e.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/22e06214dba5804134e276e3bb5f75df.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/5cd19216d4a0177a44ff005969c5868c.jpeg)
关于事务的管理:
同时存入两条数据 字段sex长度只有2 所以 b不能插入成功,那么a是否插入成功呢?
![](https://i-blog.csdnimg.cn/blog_migrate/daf04514039dedb0123573078257d051.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/d43beb2ebeaf888a093dd0c760826050.jpeg)
测试:值插入一条数据
![](https://i-blog.csdnimg.cn/blog_migrate/97af4cb1a9e93b145d575f5d9c956a1e.jpeg)
这在开发过程中是不被允许的,所以我们必须加上事务管理@Transactional
![](https://i-blog.csdnimg.cn/blog_migrate/39dba654d72da5f602549b367ee2ccd7.jpeg)
注意:数据库的存储引擎必须是innodb,事务才会起作用。
修改表的存储引擎:ALTER TABLE boy ENGINE=innodb
原文链接:https://baijiahao.baidu.com/s?id=1608301601154521261&wfr=spider&for=pc