【Java】springboot

文章目录

    • Spingboot
      • 1、起步依赖
      • 2、构建springboot工程jar包
      • 3、springboot配置文件
      • 4、多环境配置
      • 5、maven和boot多环境兼容问题
      • 6、配置文件分类
      • 7、springboot整合mybatis

Spingboot

springboot用来简化spring的初始搭建以及开发过程。

比方说,创建一个springmvc程序。先导入很多很多坐标,然后写很多的配置类。很麻烦。

而如果使用springboot,spring和springmvc的大量依赖和它们的两个配置类可以得到简化。并且springboot还内置了一个tomcat服务器。

从spring的官网上就可以下载到一个springboot工程的模板。用这个模板开始开发。

1、起步依赖

最简单的springboot程序包含两个文件:Application类和pom文件。

只要运行Application类,就可以启动springboot,tomcat也会跟着启动。

pom文件之中有最基础的两个依赖。一个是继承的依赖starter-parent,springboot最基础的依赖,springboot所有的东西都建立在其之上。另一个是starter-web依赖,springboot程序能够完成web开发就以这个依赖作为基础。

在这里插入图片描述

starter-parent这个依赖,里边实际上配置了200多个依赖(mysql、servlet、springweb等等),并且这些依赖的版本都是没有冲突的。这些依赖都用dependencyManagement进行管理,要用到的时候直接引入即可。

starter-web这个依赖存在于starter-parent这个依赖中。它是做web需要用到的依赖,所以将其从starter-parent这个依赖引下来。

另外,starter-parent中还有starter-test依赖,可以用来做测试,也可以引下来。

另外,starter-web这个依赖中存在starter这个依赖,如果不添加start-web依赖,也必须要添加start依赖。

springboot默认使用tomcat作为服务器,但是其实可以更改为jetty服务器。starter-parent之中具有jetty的服务器。只要把tomcat服务器的依赖排除掉,然后使用jetty服务器即可。

在这里插入图片描述

2、构建springboot工程jar包

要构建springboot工程的jar包,需要同时包含springboot依赖的所有jar包,并且要指定一个入口类才能使用java -jar启动jar包。

maven使用默认的指令package是没法包含springboot依赖的jar包并指定入口类的。需要在pom文件中专门导入一个maven打包的插件用于打包springboot工程。

在这里插入图片描述

3、springboot配置文件

基础springboot工程只有启动类和pom文件,但是如果想要更改springboot的设置,或者想要配置一些设置项(比如mysql的数据源),就需要引入配置文件了。

三种配置文件(properties,yml,yaml),可以在这三种中写springboot的配置信息。当三种同时存在时,properties的优先级最高,yaml的优先级最低。

有些配置项配置了,会被springboot自动读取。如果开发者想要获取到配置项的内容,应该如何做呢?

第一种方式:使用自动装配基本类型@value即可。

在这里插入图片描述

第二种方式:使用springboot提供的类Enviroment,使用@Autowired自动装配,所有设置项都会被封装到这个对象中。

在这里插入图片描述

第三种方式,引入依赖然后自定义一个封装类即可。

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

4、多环境配置

在配置文件中配置即可。

在这里插入图片描述

将springboot打包,可以在启动jar包的时候指定特定的环境。

java -jar springboot.jar --spring.profiles.active=test

其实启动jar包的时候可以修改配置文件中的信息。

java -jar spirngboot.jar --server.port=10001 --spring.profiles.active=pro

5、maven和boot多环境兼容问题

之前maven高级应用的时候也有一个多环境开发,boot和maven之间可以实现同步。要想要springboot能够和maven的多环节依赖产生联系,只需要让springboot读取pom文件激活的环境配置即可。

要实现boot读取pom文件中的属性,要在pom中加个插件:

在这里插入图片描述

然后在springboot的配置中激活maven的指定环境。使用${}占位符来获取pom文件中的<properties>标签中的内容。

在这里插入图片描述

6、配置文件分类

配置文件在不同的位置,有不同的加载优先级。具体来说,将一个springboot项目打包,它会按照如下顺序加载配置文件:

在这里插入图片描述

这样可以更加方便对配置文件做管理。并且如果打包的时候jar包中的配置文件写错了,可以在jar包同级目录下添加修改后的配置文件来完成修改。不用重新部署jar包。

config目录主要是为了处理这样的场景:别人给了一个项目并且已经写好了配置文件,如果想要修改配置文件,最好不要直接在他的配置文件中修改,这时候就可以新建config目录,在这个目录下添加配置文件。springboot会优先加载这个目录下的配置文件。

7、springboot整合mybatis

springboot整合mybatis非常非常简单。只需要导入mybatis和mysql的依赖,然后在springboot的配置文件中编写数据源,然后为数据层接口添加注解@Mapper,接下来为接口中方法添加各种mybatis注解/编写sql映射文件,就可以调用接口中各种方法执行数据库查询操作了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

spring整合mybatis的时候,还需要将mybatis的配置文件中数据库连接和包扫描的部分做成bean,springboot将这两部分隐藏起来了。

由于springboot的配置文件中有数据源的信息,所以mybatis会自动读取配置文件创建SqlSessionFactoryBean。

由于springboot的数据层接口会加上@Mapper注解,这个注解可以代替包扫描的作用。

当接口自动装配,发现这个接口上存在Mapper注解,springboot会去寻找IoC容器中的SqlSessionFactoryBean以及sql映射文件帮助该接口创建代理对象。然后这个接口就可以执行各种查询了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/297279.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ps2022版DR5插件扩展窗口不展示及未正确签署等问题修复

前言 最近在安装DR5的时候遇到了一些报错问题&#xff0c;翻看了几篇文章找了一些实质性的方案&#xff0c;亲测有效&#xff0c;有同样问题的小伙伴自己对号入座哈。 窗口扩展不显示问题 问题 很多人第一次安装DR5时会发现这个【窗口-扩展】是灰色的&#xff0c;且没有DR5…

class087 动态规划中根据数据量猜解法的技巧【算法】

class087 动态规划中根据数据量猜解法的技巧【算法】 2023-12-24 14:36:06 算法讲解087【必备】动态规划中根据数据量猜解法的技巧 code1 打 怪 兽 // 贿赂怪兽 // 开始时你的能力是0&#xff0c;你的目标是从0号怪兽开始&#xff0c;通过所有的n只怪兽 // 如果你当前的能力…

35c3 krautflare

参考这篇文章可以彻底了解本题的漏洞所在 https://xz.aliyun.com/t/6527 由于Math.expm1经过patch以后的返回值不可能是-0&#xff0c;但是patch的地方是在typer优化中&#xff0c;所以实际上如果没有优化的话是可以返回-0的&#xff0c;这就意味着如果我们先不停地Math.expm1…

【C++】unordered_set/unordered_multiset/unordered_map/unordered_multimap

我们下面来学习C的另外两个容器&#xff1a;unordered_set和unordered_map 目录 一、unordered系列关联式容器 二、unordered_map 2.1 unordered_map的介绍 2.2 unordered_map的接口说明 2.2.1 unordered_map的构造 2.2.2 unordered_map的容量 2.2.3 unordered_map的迭…

java的XWPFDocument3.17版本学习

maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version> </dependency> 测试类&#xff1a; import org.apache.poi.openxml4j.exceptions.InvalidFormatExcep…

探索应用程序的指路明灯:Route 和 Router 入门指南(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

一站式指南:第 377 场力扣周赛的终极题解

比赛详情 比赛地址 题目一很简单题目二主要是题目长了点&#xff0c;其实解法很常规(比赛后才意识到)题目三套用Dijkstra算法题目四没时间解答水平还有待提升(其实就是需要灵活组合运用已知的算法&#xff0c;有点类似大模型的Agent) 题解和思路 第一题&#xff1a;最小数字…

信号与线性系统翻转课堂笔记10——傅里叶变换的性质

信号与线性系统翻转课堂笔记10——傅里叶变换的性质 The Flipped Classroom10 of Signals and Linear Systems 对应教材&#xff1a;《信号与线性系统分析&#xff08;第五版&#xff09;》高等教育出版社&#xff0c;吴大正著 一、要点 &#xff08;1&#xff0c;重点&…

Echarts社区推荐

Apache Echarts官方示例中&#xff0c;有的demo并不能完全符合我们的需求&#xff0c;下面推荐几个Echarts社区&#xff0c;以便快速搭建项目。 1. isqqw 官方地址 &#xff1a;https://www.isqqw.com/ 2. makepie 官方地址 &#xff1a;https://www.makeapie.cn/echarts 3. P…

神经网络:深度学习优化方法

1.有哪些方法能提升CNN模型的泛化能力 采集更多数据&#xff1a;数据决定算法的上限。 优化数据分布&#xff1a;数据类别均衡。 选用合适的目标函数。 设计合适的网络结构。 数据增强。 权值正则化。 使用合适的优化器等。 2.BN层面试高频问题大汇总 BN层解决了什么问…

2024年【陕西省安全员C证】考试总结及陕西省安全员C证复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 陕西省安全员C证考试总结考前必练&#xff01;安全生产模拟考试一点通每个月更新陕西省安全员C证复审考试题目及答案&#xff01;多做几遍&#xff0c;其实通过陕西省安全员C证模拟考试题库很简单。 1、【多选题】下列…

基于SpringBoot的瑜伽馆管理系统 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 瑜伽课程模块2.3 课程预约模块2.4 系统公告模块2.5 课程评价模块2.6 瑜伽器械模块 三、系统设计3.1 实体类设计3.1.1 瑜伽课程3.1.2 瑜伽课程预约3.1.3 系统公告3.1.4 瑜伽课程评价 3.2 数据库设计3.2.…