SpringBoot
运行方式
-
打包,执行package命令,生成jar包
-
在jar包目录下,执行cmd,
-
输入java -jar jar包名
-
注意:如果不能运行,则重新配置java环境:Java home , classpass ,path
SpringBoot概述
-
简化Spring应用的初始搭建以及开发过程
-
SpringBoot优点:
-
自动配置 (简化工程相关配置)
-
起步依赖(简化依赖配置)
-
辅助功能(内置服务器器,..)
-
-
parent:依赖管理
-
开发SpringBoot程序要继承Spring-boot-starter-parent
-
Spring-boot-starter-parent 定义了若干个依赖管理
-
继承parent模块可以避免使用相同技术时出现的以来版本冲突
-
继承parent的形式也可以采用引入的形式实现效果
-
-
starter: 依赖
-
定义了当前项目的所有依赖,以达到减少依赖配置的目的
-
-
引导类
-
SpringBoot工程提供引导类用来启动程序
-
SpringBoot工程启动后创建并初始化Spring容器
-
-
内嵌tomcat
启动命令行
-
可以临时加以参数
-
java -jar jar包名 --spring.profiles.active=pro
-
java -jar jar包名 --server.port=81
基础配置
-
SpringBoot中4级配置文件
1级:file :config/application.yml 【最高 jar包所在目录】
2级:file :application.yml 工程目录的同级目录配置
3级:classpath:config/application.yml
4级:classpath :application.yml 【最低】
-
作用:
-
1级与2级留做系统打包后的设置通用属性
-
3级与4级留做系统开发阶段设置通用属性
-
-
配置文件间的加载优先级
-
properties最高
-
yml
-
yaml最低
-
-
不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留
隐藏文件或者文件夹
创建SpringBoot太卡了,换成阿里云的
-
隐藏文件:Editor--->File type--->ignored Files and Folders--->添加即可
辅助功能
-
内嵌Tomcat服务器是SpringBoot辅助功能之一
-
内嵌Tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理
-
变更内嵌服务器思想是去除现有服务器,添加全新的服务器
-
Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换位Jetty。
-
在web起步依赖环境中,排除Tomcat起步依赖
-
添加Jetty起步依赖,版本由SpringBoot的starter控制
-
SprigBoot内置服务器
-
tomcat 负载了若干较重的组件
-
jetty 更轻量级,负载性能远不及tomcat
-
undertow 负载性能勉强跑赢tomcat
-
复制模块
-
在工作空间中复制对应工程,并修改名称
-
删除与Idea相关配置文件,仅保留src和pom.xml文件
-
修改pom.xml文件中的artifactId与新工程/模块名相同
-
删除name标签
-
保留备份
yml 文件中引用变量
-
单一属性:用@value注解
-
在配置文件中可以使用${属性名}方式引用属性值
-
如果属性中出现特殊字符,可以使用双引号包裹起来作为字符解析
-
读取全部属性数:
//自动装配 将所有的数据封装到一个对象
-
读取部分属性
-
定义一个实体类,和yml中属性对应
-
添加让注解让spring管理@Component
-
添加一个读取yml中属性的注解@ConfigurationProperties(prefix=“datasource”)
-
创建对象,自动装配,
-
读取就ok
-
整合Mybatis
-
导入对应的starter
-
mysql驱动依赖
-
yml配置中配置数据源datasource 连接的相关信息
-
dao层接口添加@Mapper
-
注意问题:mysql5和8的区别 :url ?serverTimezone=UTC
-
驱动类过时,提醒使用 com.mysql.cj.jdbc.Driver
整合Mybatis-pius
-
不知到坐标:mvnrepository.com --->mybatis plus
-
手动添加导入Mybatis-Plus坐标:mybatis-plus-boot-starter
-
继承BatisMapper
-
添加@Mapper
整合druid
-
导入坐标
-
添加配置 :druid专用
spring
整合任意第三方技术
-
导入对应的starter
-
配置对应的设置或者采默认配置
基于SpringBoot的SSMP整合案例
-
业务层
-
MyBatis-plus 提供的接口 Iservice<Book>
-
ServiceImpl<BookDao, Book> 【dao层接口,实体类】
-
SpringBoot打包插件
-
使用SpringBoot提供的maven插件可以将工程打成可执行的jar包
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
命令行启动常见问题及解决方案
-
Windowns端口被占用
# 查询端口
netstat -ano
#查询指定端口
netstat -ano |findstr "端口号"
#根据进程PID查询进程名称
tasklist |findstr "进程PID号"
#根据PID杀死任务
taskkill /F /PID "进程PID号"
#根据进程名称杀死任务
taskkill -f =t -im "进程名称"自定义配置文件
-
--spring.config.name=file名
-
--spring.config.location=classpath:/file名
-
--spring.config.location=classpath:/file1名,classpath:/file2名
多环境开发
-
yml
#多环境开发
spring
多环境开发独立配置文件书写技巧
spring
maven 覆盖idea的配置
需要重新编译compile,才会生效
日志基础操作
-
日志作用:
-
编程期调试代码
-
运营其记录信息
*记录日常运营重要信息
*记录应用报错信息
*记录运维过程数据(扩容,宕机,报警)
-
private static final Logger log = LoggerFactory.getLogger(BookController.class);
用这个
-
简化开发
-
使用lombok提供的注解@Slf4j 简化开发,减少日志对象的声明操作
-
日志输出格式
-
设置日志输出格式
logging
日志文件
logging
启动热部署
-
开发者工具坐标
<!--热部署:开发者工具-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency> -
激活热部署:Build--->Build Project :Ctrl+F9
-
热部署仅仅加载当前开发者自定义开发的资源,不加载jar资源
-
.yml
#设置不参与热部署的文件
devtools
自动热部署
-
Build,Excution,Deployment-->Compiler-->勾上Build project automatically
-
Advanced Settings --->Compiler --->勾上Allow
关闭热部署
devtools
package com.yang;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
EnableConfigurationProperties
-
@EnableConfigurationProperties 注解可以将@ConfigurationProperties对应的类加入Spring容器中
-
@EnableConfigurationProperties 和@Component不能同时使用
-
解除使用@ConfigurationProperties注释警告
-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-confguration-processor</artifactId>
</dependency>
常用的计量单位
-
SpringBoot支持的JDK8提供的时间与空间的计量单位
-
//单位
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix