Spring boot学习笔记

微服务阶段JavaSE:OOPMySQL:持久化HTML+CSS+JS+jQuery+框架:视图,框架不熟练,CSS不好Javaweb:独立开发MVC三层架构的网站了:原始ssm:框架:筒化了我们的开发流程,配置也开始较为复杂war: tomcat运行Spring再简化: Spring Boot-jar:内嵌 tomcat;微服务架构!服务越来越多: spring cloud[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-awomZa9n-160733769
摘要由CSDN通过智能技术生成

微服务阶段

JavaSE:OOP

MySQL:持久化

HTML+CSS+JS+jQuery+框架:视图,框架不熟练,CSS不好

Javaweb:独立开发MVC三层架构的网站了:原始

ssm:框架:筒化了我们的开发流程,配置也开始较为复杂

war: tomcat运行

Spring再简化: Spring Boot-jar:内嵌 tomcat;微服务架构!

服务越来越多: spring cloud


Spring Boot快速入门

什么是Spring

Spring是一个开源框架,2003年兴起的一个轻量级的Java开发框架,作者: Rod Johnson

Spring是为了解決企业级应用开发的复杂性而创建的,简化开发。

Spring是如何简化Java开发的

为了降低Java开发的复杂性, Spring采用了以下4种关键策略

1、基于POJO的轻量级和最小侵入性编程

2、通过IOC,依赖注入(DI)和面向接口实现松耦合

3、基于切面(AOP)和惯例进行声明式编程

4、通过切面和模版减少样式代码

什么是Spring Boot

约定大于配置(maven、spring、springmvc、spring boot)

Spring Boot的主要优点

  • 为所有 Spring开发者更快的入门
  • 开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化Web项目
  • 没有冗余代码生成和XML配置的要求

微服务

什么是微服务

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

单体应用架构

所谓单体应用架构( all in one)是指,我们将一个应用的中的所有应用服务都封装在一个应用中。

无论是ERP、CRM或是其他什么系统,你都把数据库访回,Web访问,等等各个功能放到一个war包内。

  • 这样做的好处是,易于开发和测试;也十分方便部署;当需要扩展时,只需要将war复制多份,然后放到多个服务器上,再做个负载均衡就可以了。
  • 单体应用架构的缺点是,哪怕我要修改一个非常小的地方,我都需要停掉整个服务,重新打包、部署这个应用war包。特别是对于一个大型应用,我们不可能把所有内容都放在一个应用里面,我们如何维护、如何分工合作都是问题。

微服务架构

​ all in one 的架构方式,我们把所有的功能单元放在一个应用里面。然后我们把整个应用部署到服务器上。如果负载能力不行,我们将整个应用进行水平复制,进行扩展,然后在负载均衡。

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

这样做的好处是:

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

第一个Spring Boot程序

  • jdk1.8
  • maven 3.6.1
  • springboot:最新版
  • IDEA

官方:提供了一个快速生成的网站!IDEA集成了这个网站!

  • 可以在官网直接下载后,导入idea开发(官网在哪)
  • 直接使用dea创建一个 springboot项目(一般开发直接在DEA中创建)

原理初探

自动配置

pom. xml

  • spring-boot- dependencies:核心依赖在父工程中
  • 我们在写或者引入一些 Springbootf依赖的时候,不需要指定版本,就因为有这些版本仓库

启动器

  • <!-- 启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    
  • 启动器:说白了就是 Springboote的启动场景

  • 比如 Spring- boot-starter-web,他就会帮我们自动导入Web环境所有的依赖!

  • springboot会将所有的功能场景,都变成一个个的启动器

  • 我们要使用什么功能,就只需要找到对应的启动器就可以了 starter

主程序

//@SpringBootApplication:标注这是一个spring boot 的应用
@SpringBootApplication
public class DemoApplication {
   
    //将Spring Boot应用启动
    public static void main(String[] args) {
   
        SpringApplication.run(DemoApplication.class, args);
    }
}
  • 注解
@SpringBootConfiguration:springboot的配置
    
	@Configuration:spring配置类
    
    @Component:说明这也是一个spring的组件
    
@EnableAutoConfiguration:自动配置
    
    	@AutoConfigurationPackage:自动配置包
    
			@Import({
   Registrar.class}):自动配置包注册
    
		@Import({
   AutoConfigurationImportSelector.class}):自动配置导入选择

获取候选的配置

在这里插入图片描述

META-INF/ spring.factories:自动配置的核心文件

在这里插入图片描述

结论: springbootf所有自动配置都是在启动的时扫描并加载: spring.factories所有的自动配置类都在这里面,但是不一定生效,要判断条件是否成立,只要导入了对应的 start,就有对应的启动器了,有了启动器,我们自动装配就会生效,然后就配置成功!

  1. springboot在启动的时候,从类路径下/META-INF/ spring. factories获取指定的值;
  2. 将这些自动配置的类导入容器,自动配置就会生效,帮我进行自动配置;
  3. 以前我们需要自动配置的东西,现在 springboot帮我们做了;
  4. 整合javaEE,解决方案和自动配置的东西都在 spring
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值