Springboot基础学习【江河计划】

专题二 1.1 SpringBoot基础;

1.1.1SpringBoot基本介绍

了解SpringBoot是什么
  • Spring 的发展史
  • Spring是2003年兴起的一个轻量级的java开源框架,这个框架最初是为了解决企业级应用开发笨重臃肿的问题,宗旨就是简化开发;
    ####SpringBoot 的诞生
  • 随着Spring越来越火,Spring也慢慢从一个小而精的框架变成了一个覆盖面广大又全的框架,大量繁琐的XML配置和第三方整合配置,让Spring使用者痛苦不已,这个时候急需一个解决方案来解决这些问题,故SpringBoot应运而生,2013年Springboot开始研发,2014年4月SpringBoot1.0正式发布。
    ####什么是Springboot
  • Springboot相对于Spring来说是一套全新的框架,它来自于Spring大家族,因此Spring所有具备的功能它都有并且更容易使用;同时还简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。
  • Springboot默认配置了很多框架的使用方式,就像Maven整合了所有的Jar包,Springboot整合了所有的框架。它的核心设计思想是:约定优于配置,Springboot所有开发细节都是依据此思想进行实现的。

####了解SpringBoot的特性

  1. 搭建项目快,几秒钟就可以搭建完成;
  2. 没有冗余代码生成和XML配置的要求;
  3. 开箱即用,提供各种默认配置来简化项目配置;
  4. 内嵌容器,省去了配置Tomcat的繁琐;
  5. Starter自动依赖和版本控制;
  6. 方便监控,使用Springboot Actuator组件提供了应用的系统监控,可以查看应用配置的详细信息。
单体架构和微服务架构
  1. 什么是单体架构
  2. 所谓单体应用架构(all in one)是指我们将一个应用中的所有服务都封装在一个应用中。无论是ERP、CRM或是其他什么系统,你都把数据库访问,web访问,等等各个功能放到一个war包内。
    ####3.2 单体架构优缺点
  • 优点:易于开发和测试;十分方便部署;当需要扩展时,只需要将war复制多份,然后放到多个服务器上,再做个负载均衡就可以了。
  • 缺点:项目过于臃肿;资源无法隔离;无法灵活扩展

####3.3 什么是微服务架构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-11KpIaQl-1589331597491)(https://martinfowler.com/img/mf-dallas.jpg)]
Microservices Guide

  • 打破了之前All in one的架构方式,把每个功能元素独立出来。把独立出来的功能元素动态组合,需要的功能元素才去拿来组合,需要多一些时可以整合多个功能元素。所以微服务架构是对功能元素进行复制,而没有对整个应用进行复制。

####3.4 微服务架构优点

  • 节省了调用资源。每个功能元素的服务都是一个可替换的、可独立升级的软件代码。

  • In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

  • 微服务是一种架构风格,它要求我们在开发一个应用的时候,这个应用必须构建成一系列小服务的组合;可以通过http的方式进行互通。

####4.如何构建微服务

  • 一个大型系统的微服务架构,就像一个复杂交织的神经网络,每一个神经元就是一个功能元素,他们各自完成自己的功能,然后通过http或者RPC相互请求调用。但这种庞大的系统架构给部署和运维带来很大的难度,于是,Spring为我们带来了构建大型分布式微服务的全套、全程产品:
  • 构建一个个功能独立的微服务应用单元,可以使用SpringBoot,可以帮我们快速构建一个应用;
  • 大型分布式网络服务的调用,这部分由SpringCloud来完成,实现分布式;
  • 在分布式中建,进行流式数据计算、批处理,采用SpringCloud data flow.

1.1.2 SpringBoot快速入门;

####使用SpringBoot开发WEB工程

  1. 官网下载SpringBoot项目
    访问 https://spring.io/projects/spring-boot
    点击[Spring Initializr]

  2. IDEA集成SpringBoot项目
    IDEA-> New Project->Spring Initializr

  3. 如何部署SpringBoot项目
    打包maven命令:package
    java -jar jarName.jar

1.1.3 SpringBoot 原理分析

####SpringBoot 的启动类解析

SpringBoot 的启动类解析

####@SpringBootApplication:SpringBoot 启动类注解

  • 包含以下三个注解:
  1. @SpringBootConfiguration(SpringBoot配置类)
    –>1.1 @Configuration(标明这是一个配置类)
  2. @EnableAutoConfiguration //开启自动配置功能
    –> 2.1 @AutoConfigurationPackage(自动配置包)
    –> 2.1.1 @Import(Registrar.class)把启动类所在的包进行默认扫描,该包下的所有类都会被扫描到Spring容器中进行管理
    –> 2.2 @Import(AutoConfigurationImportSelector.class)(加载指定类到Spring容器中):自动配置导入选择器,根据项目来判断你的项目需要哪些配置信息,然后把默认的配置内容导入到Spring容器中进行管理
  3. @ComponentScan:组件扫描和自动装配,用来指定扫描容器的范围

1.1.4 SpringBoot 配置说明

####SpringBoot 中的配置文件

  1. springboot为什么还需要用配置文件
    方便我们修改springboot默认的配置;(port …)
    我们有其他的信息需要保存在配置文件中;(ps:md5 key…)
  2. springboot 中的配置文件有哪些
    2.1 properties配置文件
    2.2 yml配置文件
    2.3 2个文件同时存在时,[优先级] properties > yml
springboot中的配置文件使用中注意事项
  1. 文件放入在src/main/resources目录或者是类路径/config目录下;
  2. springboot默认读取以application开头的配置文件
    ####yml文件的语法说明
  3. yml文件的介绍,官网地址(https://yaml.org)
    yml的全程为YAML(YAML Ain’t Markup Language)它是一种标记语言,它是一种直观的被电脑识别的数据序列化格式,并且容易被人类阅读,这种标记语言和其他标记语言不通的地方是,它是以数据为中心,比JSON、XML邓更适合做配置文件
  4. yml语法
    yml的基本语法
    1.key: value的格式(value前面的空格不能少,可以有多个,不能用tab替代);
    2.大小写敏感
    3.字符串默认不需要使用引号,单引号和爽引号的区别在于是否能用转义字符;
    4.注释方式:#
    yml支持的三种数据类型
    1.字面量: 直接量,单个不能被拆分的值(数字、字符串、布尔)
    2.对象:键值对形式存在
    3.数组:字面量/对象的集合
    ####自定义properties的读取
  5. 自定义一个properties文件,并且让key和之前的properties不一样;
  6. 使用@PropertySource(“classpath:person2.properties”)注解来标明你要读取的properties文件名
  7. 使用@ConfigurationProperties(prefix = “person”),注意修改prefix的值。

1.1.4 SpringBoot 进行WEB开发

前期准备工作
  • 熟悉thymeleaf语法
  • 熟悉spring、springMVC里面的相关操作
  • 熟悉拦截器
  • 熟悉springboot搭建项目过程
  • 了解Bootstrap
  • 准备一套web静态页面(登录页面、信息展示主页面)
  • IDEA 开发工具

1.1.5 RESTful的介绍及使用

RESTful的相关介绍
  • REST的概念
    REST(Representational State Transfer,表述性状态转移)一词是由Roy Thomas Fielding在2000年博士论文中剔除的,定义了他对互利网软件的架构原则,所以我们可以说REST是一种架构风格。

  • REST的原则

  1. 网络上的所有事物都被抽象程资源
  2. 每个资源都有一个唯一的资源标识符
  3. 同一个资源具有多种表现形式(xml,json等)
  4. 对资源的各种操作不会改变资源标识符
  5. 所有的操作都是无状态的
  • URI
    统一资源标识符,服务器上每一个资源,比如文档、图像、视频片段、程序都由一个通用资源标识符(Uniform Resource Identifier,简称"URI")进行定位。

  • 常见的URI:

  1. 127.0.0.1:8080/user/login.do
  2. https://github.com/git
  3. https://github.com/git/git/commit/asdfsadfasdf

URI、URL、URN三者的关系是什么?
URI、URL、URN三者的关系

RESTful在SpringBoot中的应用

SpringBoot进行RESTful开发流程

Controll

开启热部署
pom.xml

Spring Data REST的使用

Controll

Controll

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-rest</artifactId>
	</dependency>

Controll

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值