SpringBoot框架理解
文章目录
- SpringBoot框架
- 1 SpringBoot入门
- 1.2 什么是SpringBoot
- 1 官网的解释
- 2 我的理解
- 3 SpringBoot的优缺点
- 4 构建项目
- 1 使用Spring 官方提供页面构建
- 2 使用IDEA构建
- 3 pom包介绍
- 1.3 SpringBoot核心
- 1 约定优于配置
- 2 Starter启动器
- 3 自动配置工作原理
- @SpringBootConfiguration
- @EableAuconfiguration
- 1.3 SpringBoot全局配置
- 1 全局配置文件
- 2 自定义配置文件
- 1 通过@Value获取自定义配置
- 2 通过 @ConfigurationProperties注解封装自定义配置
学习SpringBoot框架后写一个总结,这个文档会持续更新的
SpringBoot框架
1 SpringBoot入门
1.2 什么是SpringBoot
1 官网的解释
Spring在官方首页是这么说的:说使用SpringBoot可以构造任何东西,SpringBoot是构造所有基于Spring的应用程序的起点,SpringBoot在于通过最少的配置为你启动程序。
2 我的理解
SpringBoot是Spring开源项目的一个子项目,是Spring组件的一站式解决发案,其目的是简化Spring应用的初始搭建和开发过程。
3 SpringBoot的优缺点
其实就是变得简单,快捷,方便,我们以前自己搭建一个Spring Web项目是不是需要配置web.xml,加载Spring和SpringMvc,在配置数据库连接.配置Spring事务,日志文件,对配置文件的读取,开启注解等等一些东西,在然后启动Tomcat调试,如果还要加一些功能,还需要你自己在去搞一遍,为什么SpringBoot可以很方便的搭建一个Web项目了,不提供 Spring 框架的核心特性以及扩展功能,只用于开发新一代基于Spring框架的应用程序。
所有SpringBoot有以下优点:
1. 开发变得简单
2. 配置变得简单
3. 部署变得简单
4. 监控变得简单
Spring Boot有以下缺点:
- 将现有的Spring Framework项目转换为Spring Boot应用程序是一个非常困难和耗时的过程。它仅适用于全新Spring项目;
- 集成度较高,使用过程中不太容易了解底层
4 构建项目
1 使用Spring 官方提供页面构建
1、访问 http://start.spring.io/
2、选择构建工具 Maven Project、Java、Spring Boot 版本 2.1.15、Spring Web依赖以及一些工程基本信息,可参考下图所示:
3、点击 Generate – Ctrl + 下载项目压缩包
4、解压后,使用 IDEA 导入项目
2 使用IDEA构建
- File -> New —> Project… 弹出新建项目的框
- 选择 Spring Initializr,Next 也会出现上述类似的配置界面,IDEA 帮我们做了集成。
· Group,一般填写公司域名,· Artifact,可以理解为项目的名称了,在点击next进入Dependencles部署,选择SpringBoot的版本,我一般选择的是2.6.3的版本,在点击next
![在这里插入图片描述](https://img-blog.csdnimg.cn/72ecf91fa5cd4d92ab460859374672cf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pit5pmf,size_20,color_FFFFFF,t_70,g_se,x_16
输入项目名称和项目地址在下一步就可以了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-23KNs0ou-1644988805926)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220216114401953.png)]
- src/main/java 程序开发以及主程序入口
- src/main/resources 配置文件
- src/test/java 测试程序
3 pom包介绍
第一部分:项目描述信息
groupId,公司域名;
artifactId,项目名称;
version,项目版本号;
name,项目名称;
description,项目描述
第二部分:依赖配置部分<parent> 配置 Spring Boot 父级版本<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.3</version> <relativePath/> <!-- lookup parent from repository -->
</parent><dependencies> 配置项目所需要的依赖包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
</dependencies>
1.3 SpringBoot核心
1 约定优于配置
约定优于配置(Convention Over Configuration),叫作约定编程,是一种设计范式,一般用来减少开发人员做决定的数量。所以.在Spring体系中,Spring Boot jpa就是约定优于配置最佳实现之一,不需要关注表结构,我们约定类名.即是表名,属性名即,是表的字段,在做一些配置,就可以大大简化了我们的工作
2 Starter启动器
Starter可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包
3 自动配置工作原理
@SprngBoot Application 注解启动类 表示项目的的启动
@SprngBoot Application 注解启动类 标注的是SpringBoot 项目的主配置类,用于启动SpringBoot项目,SpringBoot Application里面还有三个注解分别是@EableAuconfiguration,@SpringBootConfiguration,@ComponetScan
@ComponentScan 注解表示扫描组件,以前在SSM中也使用过组件扫描,启用注解配置。启动类上间接包含该注解,表示会扫描启动类所在包及子包下的注解配置。
@SpringBootConfiguration
@SpringBootConfiguration标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名
@EableAuconfiguration
@EableAuconfiguration 注解 开启自动配置,它下面还有两个重要的注解,@AutoConfigurationPackage,@Import。
@AutoConfigurationPackage 实现了自动将包放入到扫描器中
@Import注解 自动导入第三方依赖
@SpringBootApplication 完成的三件事情
1、标识当前类为主配置类。
2、自动扫描当前主配置类所在的包及其子包下的所有类。并添加一些类配置类纳入Spring容器中。
3、会自动将SpringBoot项目所需要的第三方依赖进行下载。
1.3 SpringBoot全局配置
1 全局配置文件
1、application.properties。
2、application.yml 配置文件。
在默认情况下properties比yml文件的优先级高
相同点:
可以覆盖Spring Boot自动配置的默认值
不同点:
properties的语法是key=value,比较简单。
3 application.yml 配置文件
yml是YAML语言的文件,以数据为中心,比json、xml等更适合做配置文件
yml的语法是由字母值,对象,数组,三种结构组成,并且是以空格的缩进程度来表示层级关系,空格的个数并不重要,只要左边空格对齐则视为同一个层级。注意不能用tab代替空格。且大小写敏感
注意事项:
1、字符串可以不加引号,若加双引号则输出特殊字符,若不加或加单引号则转义特殊字符;
2、数组类型,短横线后面要有空格;对象类型,冒号后面要有空格;
3、YAML是以空格缩进的程度来控制层级关系,但不能用tab键代替空格,大小写敏感;
4、如何让一个程序员崩溃?在yml文件中加几个空格
2 自定义配置文件
自定义配置文件通过,@Value获取自定义配置,自定义配置文件,@Configuration配置,导入XML配置,下面我就说下通过@Value和自定义配置文件来定义配置文件
1 通过@Value获取自定义配置
在application.properties自定义配置:
com.test.zhangsan.name=张三
com.test.nishi.name=李四
在HelloController.java中通过 @Value注解获取数据:
@RestController
public class HelloController {@Value("${com.test.zhangsan.name}")private String zname;@Value("${com.test.nishi.name}")private String lname;@Autowiredprivate DemoService demoService;@RequestMapping("/hello") public String hello() { String msg = demoService.sayHello(); msg += " "+zname +" "+lname; return msg; }
}
2 通过 @ConfigurationProperties注解封装自定义配置
使用@ConfigurationProperties注解,需要在]pom.xml中添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional>
</dependency>
// 在com.demo.comm包下创建Testinfo.java类,并添加注解,prefix指定获取的配置信息的前缀:
@Cconfiguration
@ConfigurationProperties(prefix = "com.test")
public class Testinfo implements Serializable { private String zname; private String lname; //省略setter/getter
}
// 在启动类上使用@EnableConfigurationProperties(Testinfo.class)
// 修改HelloController.java,注入TestInfo获取数据:
@RestController
public class HelloController { @Resource private Testinfo Testinfo; @Autowired private DemoService demoService; @RequestMapping("/hello")public String hello() { String msg = demoService.sayHello(); msg += " "+Testinfo.getZname() +" "+Testinfo.getLname(); return msg; }
}
SpringBoot框架理解相关推荐
- 《SpringBoot框架开发技术整合》笔记(一)
文章目录 前言 第一章 构建简单WEB项目 第二章 SpringBoot接口返回Json 第三章 SpringBoot热部署 第四章 SpringBoot资源文件属性 前言 笔者近期在慕课网上 ...
- 基于JAVA黑白图片和上色处理系统(Springboot框架+AI人工智能) 开题报告
本科生毕业论文 基于Java(springboot框架)黑白图片和上色处理系统 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学 ...
- 基于JAVA汽车租赁系统 (Springboot框架) 开题报告
本科生毕业论文 基于Java(springboot框架)汽车租赁系统 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学本科生毕业 ...
- 基于JAVA(Springboot框架)助农商城平台系统设计与实现 毕业设计开题报告
本科生毕业论文 基于JAVA(Springboot框架)助农商城平台 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学本科生毕业 ...
- 基于JAVA校园疫情防控系统(Springboot框架) 开题报告
本科生毕业论文 基于Java(springboot框架)校园疫情防控系统 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学本科生 ...
- 基于JAVA学校校园网站系统(Springboot框架) 开题报告
本科生毕业论文 基于Java(springboot框架)学校校园网站系统 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学本科生 ...
- Java - SpringBoot 框架详解(一)
1. SpringBoot框架 SpringBoot并不是一个全新的技术解决了新问题的框架!它更像是一个SpringMVC框架,但是,它极大程度的简化了相关的配置,它推荐使用"约定大于配置& ...
- 基于JAVA动漫网站和特效处理系统(Springboot框架+AI人工智能) 开题报告
本科生毕业论文 基于Java(springboot框架)动漫网站和特效处理系统 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学 ...
- 基于JAVA学生信息管理和新生报到系统(Springboot框架) 开题报告
本科生毕业论文 基于Java框架springboot学生信息管理和新生报到系统 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学 ...
- 15分钟用Java平台实现Springboot框架构建后端项目框架
15分钟用Java平台实现Springboot框架构建后端项目框架 文章目录 15分钟用Java平台实现Springboot框架构建后端项目框架 前言 准备工具 1. 新建项目 2.搭建项目框架 3. ...
最新文章
- 算法分析中递推式的一般代数解法
- [mmu/cache]-cache的一些基本概念介绍
- 台式计算机防盗锁怎么安装,怎样拆装防盗门锁?防盗门锁怎么进行正确安装?...
- Android系统优化(65)---MTK 平台开关机、重启时间优化
- java 学习笔记_java学习笔记
- Java基础学习总结(89)——为什么单元测试应该我们开发人员来写
- 用docker swarm 实现集群
- oracle的表空间的检查,oracle数据库检查所有表空间使用率的脚本
- docker安装tomcat下的日志查看
- 华展云-让展览更高效 2017第6届中国国防信息化装备与技术博览会会刊(参展商名录)
- C++ 中typedef用法
- nginx请求转发配置
- 易语言雷电模拟器adb模块制作实现一键模拟器多开
- 简述关于ASP.NET MVC与.NET CORE 的区别
- 前端项目使用阿里巴巴icon font的具体过程
- 易友八字合婚系统发布(支持同性基友拉拉兼容)1.01发布
- 绩点 计算 html,GPA算法大全,教你怎么算GPA
- Java中23种设计模式(随时不定时更新)
- html5 自动失去焦点,js input失去焦点事件
- 优秀的工程师是怎样炼成的
热门文章
- 测试了几款mysql监控工具
- 焊接工时简便计算工具_2020年新版机械加工工时费用计算(17页)-原创力文档...
- 传染病SIR模型及蒙特卡洛方法
- 基于51单片机超声波测距仪设计倒车雷达防撞报警器
- GBDT算法原理以及实例理解(含Python代码简单实现版)
- java爬虫实例教程_Java爬虫的实例分析
- (百看不如一练系列)整理的40个前端练手项目|||实践出真知
- Matlab画图常用命令
- [ACNOI2021]OEIS yyds
- 在VM14中建立Win10虚拟机并实现与宿主机的互联