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有以下缺点:

  1. 将现有的Spring Framework项目转换为Spring Boot应用程序是一个非常困难和耗时的过程。它仅适用于全新Spring项目;
  2. 集成度较高,使用过程中不太容易了解底层

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构建

  1. File -> New —> Project… 弹出新建项目的框
  2. 选择 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;  }  
} 

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Flask-RESTful的使用

Flask-RESTful的使用 Flask-RESTful基本使用安装定义资源Resources创建API实例添加资源到API运行Flask应用 请求处理请求解析参数校验 响应处理数据序列化定制返回格式 其他功能蓝图装饰器集合路由命名规范路由名称 Flask-RESTful Flask-RESTful是一个用于构建RESTful API的扩展…

计算机对社会的应用是什么,电子计算对人类社会有什么贡献?应用的领域又有哪些?...

在人类历史上&#xff0c;蒸汽机的发明和电力的使用&#xff0c;曾经在生产技术上引起过划时代的工业革命&#xff0c;然而&#xff0c;这种革命&#xff0c;从本质上来讲&#xff0c;它仅仅是涉及到代替人的体力劳动&#xff0c;但电子计算机的发明&#xff0c;已经涉及到代替…

一位美女博士的人脸识别历程

2019-01-28 16:44:37 1月21日&#xff0c;科技评论期刊《麻省理工科技评论》发布了2018年“35岁以下科技创新35人”&#xff08;35 Innovators Under 35&#xff09;中国榜单。商汤科技研究总监、年仅29岁的石建萍博士荣登此榜&#xff0c;凭借在计算机视觉原创技术的卓越创新…

Android仿微信发图片的样式,做IM的同学的病有救了

一&#xff1a;前言 最近在搞IM&#xff0c;真的特别痛苦。脑袋大&#xff0c;对于我这种菜鸟来说太难了&#xff0c;比现在社会娶个媳妇还难&#xff0c;硬着头皮搞&#xff0c;终于文字&#xff0c;语音&#xff0c;表情搞完了&#xff0c;开始搞图片&#xff0c;看着微信发…

软件压力测试图片60张,看图测压力,你抗压么?

你压力大么&#xff1f;快跟K线君一起来测测&#xff01; 平行线 下图里的横线都是平行的 涉世越深的人&#xff0c;受社会侵蚀越严重 看到的直线越变形 你还是单纯的你吗&#xff1f; 你能看出几条笔直的横线&#xff1f; 我想静静 这是一张静止的图片 你的心理压力越大&#…

网络安全入门学习:社会工程学

在电影《我是谁&#xff1a;没有绝对安全的系统》中&#xff0c;主角本杰明充分利用自己高超的黑客技术&#xff0c;非法入侵国际安全系统&#xff0c;并在最后逃之夭夭。在电影中&#xff0c;有一句经典的台词&#xff1a; 所有黑客手段中最有效的、最伟大的幻想艺术——社会…

《计算机组成原理》唐朔飞 第5章 输入输出系统 - 学习笔记

写在前面的话&#xff1a;此系列文章为笔者学习计算机组成原理时的个人笔记&#xff0c;分享出来与大家学习交流。使用教材为唐朔飞第3版&#xff0c;笔记目录大体与教材相同。 网课 计算机组成原理&#xff08;哈工大刘宏伟&#xff09;135讲&#xff08;全&#xff09;高清_…

easyui 表单提交与图片上传,图片添加、删除

提交表单和图片是web中经常要用到的。我这里用easyui做了一个表单&#xff0c;里面可以上传多张图片&#xff0c;并且可以进行新增和删除。 前端代码如下&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> …

社会化媒体营销方案简介

最近公司经营走到了死胡同里面&#xff0c;就开始研究运营的营销方案&#xff0c;发现有很多的IT公司都在走社会化营销&#xff0c;感觉这会是以后每个公司都会用到的一种营销策略&#xff01;社会化媒体营销-亦称社会化营销&#xff0c;是利用社会化网络&#xff0c;在线社区&…

神经网络提取图片特征,神经网络算法识别图像

如何用Python和深度神经网络寻找相似图像 代码首先&#xff0c;读入TuriCreate软件包import turicreate as tc我们指定图像所在的文件夹image&#xff0c;让TuriCreate读取所有的图像文件&#xff0c;并且存储到data数据框data tc.image_analysis.load_images(./image/)我们来…

发一张你认为很漂亮的美女照片?

顾锦盒 &#xff0c;INFP, 4w5 565 人赞同 谢谢大家的赞。更新几张。 春风再美也比不过你的笑。 编辑于 2016-04-11 75 条评论 感谢 分享 收藏 • 没有帮助 • 举报 • 作者保留权利 201赞同 反对&#xff0c;不会显示你的姓名 吴名士 &#xff0c;公众号&#xf…

机器学习在社会科学中的应用

本文把目前机器学习技术在社会科学研究中的应用分成三类&#xff1a;第一&#xff0c;数据生成&#xff08;Data Generating Process&#xff09;&#xff1a;机器学习可以帮助学者获得以前很难或无法获得的数据&#xff1b;第二&#xff0c;预测&#xff08;Prediction&#x…

[RUST/腐蚀]Windows-开服服务端下载以及配置

一、前置要求 1.SteamCMD&#xff1a;SteamCMD - Valve Developer Communityhttps://developer.valvesoftware.com/wiki/SteamCMD 2.通过SteamCMD下载RUST/腐蚀服务端。 二、SteamCMD 注意&#xff1a;所有目录均应避免出现中文。 1.建立SteamCMD文件夹&#xff0c;如 D:\st…

chatgpt赋能python:Python中的_--了解这个神秘的下划线

Python中的_ – 了解这个神秘的下划线 Python是一种流行的编程语言&#xff0c;它具有简单易学的语法和强大的功能。一些Python的特殊语法经常会让初学者感到困惑。其中&#xff0c;一个神秘的下划线符号在Python中出现的频率非常高&#xff0c;而且它的含义和使用也非常多样化…

查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在

文章目录 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 2.查看SSL配置 二、查看证书是否存在 前言 查看MySQL服务器是否启用了SSL连接&#xff0c;并且查看ssl证书是否存在 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 在Linux终端中&#xf…

python向上取整_python向上取整

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! import math f = 11.2print math.ceil(f) #向上取整print math.floor(f)#向下取整print round(f) #四舍五入 #这三个函数的返回结果都是浮点型... python中向上…

回归预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN-GRU麻雀算法优…

YouTube如何生成双语字幕?

安装YouTube的双语字幕插件即可。Dualsub 到这个网站下载即可&#xff1a; https://chromecj.com/accessibility/2019-08/2848.html&#xff0c;之后简单设置一下就可以实现双语字幕的效果了。

宝藏字幕软件 | PotPlayer

建议用potplayer&#xff0c;字幕和视频放在同一个文件夹&#xff0c;和视频一个名字&#xff08;不包括后缀名&#xff09;&#xff0c;双击视频就自动加载字幕了 起初用电脑自带的视频播放器&#xff0c;导入的字幕为透明色&#xff0c;根本看不清楚&#xff0c;于是我一顿狂…