SpringBoot2 基础回顾Day-01

前言

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".

上面是引自官网的一段话,大概是说:能快速创建出生产级别的Spring应用。Spring Boot官网:https://spring.io/projects/spring-boot

一、SpringBoot概念

1.1 Spring优缺点分析

优点:
spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。

缺点:
虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入 了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。
所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。

除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。

1.2 SpringBoot诞生的意义

SpringBoot对上述Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑 业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短 了项目周期。springboot简单、快速、方便地搭建项目;对主流开发框架的无配置集成;极大提高了开发、部署效率。

1.3 SpringBoot优点

● Create stand-alone Spring applications
创建独立Spring应用
● Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
内嵌web服务器
● Provide opinionated ‘starter’ dependencies to simplify your build configuration
自动starter依赖,简化构建配置
● Automatically configure Spring and 3rd party libraries whenever possible
自动配置Spring以及第三方功能
● Provide production-ready features such as metrics, health checks, and externalized configuration
提供生产级别的监控、健康检查及外部化配置
● Absolutely no code generation and no requirement for XML configuration
无代码生成、无需编写XML

SpringBoot是整合Spring技术栈的一站式框架
SpringBoot是简化Spring技术栈的快速开发脚手架

1.4 SpringBoot缺点

● 人称版本帝,迭代快,需要时刻关注变化(社区活跃)
● 封装太深,内部原理复杂,不容易精通

1.5 SpringBoot三个重要概念

1.起步依赖
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

2.自动配置
springboot的自动配置,指的是springboot会自动将一些配置类的bean注册进ioc容器,我们可以需要的地方使用@autowired或者@resource等注解来使用它。"自动"的表现形式就是我们只需要引我们想用功能的包,相关的配置我们完全不用管,springboot会自动注入这些配置bean,我们直接使用这些bean即可。

3.约定优于配置
约定优于配置又称按约定编程,是一种软件设计范式,约定优于配置简单来理解,就是遵循约定。SpringBoot 的设计是为了让你尽可能快的跑起来Spring 应用程序并且尽可能减少你的配置文件。

1.6 时代背景

1.微服务
James Lewis and Martin Fowler (2014) 提出微服务完整概念。
● 微服务是一种架构风格
● 一个应用拆分为一组小型服务
● 每个服务运行在自己的进程内,也就是可独立部署和升级
● 服务之间使用轻量级HTTP交互
● 服务围绕业务功能拆分
● 可以由全自动部署机制独立部署
● 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

2.分布式
在这里插入图片描述
所谓分布式即:将各个微服务分别部署在各个服务器上,服务与服务间相互隔离。从而引起以下问题:
● 远程调用
● 服务发现
● 负载均衡
● 服务容错
● 配置管理
● 服务监控
● 链路追踪
● 日志管理
● 任务调度
● …

分布式的解决
● SpringBoot + SpringCloud

3.云原生
原生应用如何上云。 Cloud Native上云的困难:
● 服务自愈
● 弹性伸缩
● 服务隔离
● 自动化部署
● 灰度发布
● 流量治理
● …

二、SpringBoot入门

2.1 Hello SpringBoot

需求:浏览发送/hello请求,响应 Hello SpringBoot 2.4.5" + "你好!

2.2 创建maven工程导入依赖

<dependencies>
	<!--场景启动器-->
	<dependency>
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter</artifactId>
	</dependency>
 	<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/>

2.3 创建主程序

/*
 * 主程序类
 * @SpringBootApplication 表示这是个springboot的应用
 */
@SpringBootApplication
public class Springboot01HelloWorldApplication {
    public static void main(String[] args) {
       SpringApplication.run(Springboot01HelloWorldApplication.class, args);
    } 
}

2.4 编写业务

@Slf4j
@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        log.info("请求进来了-------------------");
        return "Hello SpringBoot 2.4.5" + "你好!";
    }
}

2.5 测试

直接运行main方法
在这里插入图片描述

2.6 简化配置

若要修改应用端口在 application.properties 配置文件中添加server.port=8081即可。

2.7 简化部署

引入如下的插件,可将项目打包为可执行的 jar 包,其包含和执行的所有环境。

 <build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
          <version>2.4.5</version>
       </plugin>
    </plugins>
 </build>

如此出 maven-plugin 爆红添加 SpringBoot 的版本号与之对应。
打开maven将项目 clear --> package 出现 target 文件并生成jar包,
在这里插入图片描述
输入 cmd + 回车
在这里插入图片描述
执行命令: java -jar springboot-01-Helloworld-0.0.1-SNAPSHOT.jar
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值