quartz集成到springboot_SpringBoot(一)概述、HelloWord案例

转发+关注 私信【资料】 免费领取资料

1、SpringBoot 简介

回顾什么是Spring

Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架。

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

Spring是如何简化Java开发的

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

1、基于POJO的轻量级和最小侵入性编程,所有东西都是bean;

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

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

4、通过切面和模版减少样式代码,RedisTemplate,xxxTemplate;

什么是 SpringBoot

Spring Boot 基于 Spring 开发,Spring Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用。

简单来说就是 SpringBoot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,spring boot整合了所有的框架 。

Spring Boot的主要优点:

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

2、微服务

什么是微服务?

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

单体应用架构

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

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

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

微服务架构

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

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

这样做的好处是:

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

如何构建微服务

一个大型系统的微服务架构,就像一个复杂交织的神经网络,每一个神经元就是一个功能元素, 它们各自完成自己的功能,然后通过http相互请求调用。比如一个电商系统,查缓存、连数据库、浏览页面、结账、支付等服务都是一个个独立的功能服务,都被微化了,它们作为一个个微服务共同构建了一下个庞大的系统。如果修改其中的一个功能,只需要更新升级其中一个功能服务单元即可。

但是这种庞大的系统架构给部署和运维带来很大的难度。于是,spring为我们带来了构建大型分布式微服务的全套、全程产品:

  • 构建一个个功能独立的微服务应用单元,可以使用springboot,可以帮我们快速构建一个应用;
  • 大型分布式网络服务的调用,这部分由spring cloud来完成,实现分布式;
  • 在分布式中间,进行流式数据计算、批处理,我们有spring cloud data flow。
  • Spring为我们想清楚了整个从开始构建应用到大型分布式应用全流程方案。
e5958ef379034c229fb56efbbe4dc735

3、HelloWorld 入门案例

准备工作

我们将学习如何快速的创建一个Spring Boot应用,并且实现一个简单的Http请求处理。通过这个例子对 Spring Boot 有一个初步的了解,并体验其结构简单、开发快速的特性。

我的环境准备:

  • JDK 1.8
  • Maven-3.6.1
  • SpringBoot 最新版
  • IDEA

创建基础项目说明

Spring官方提供了非常方便的工具让我们快速构建应用

Spring Initializr:https://start.spring.io/

项目创建方式一:使用Spring Initializr 的 Web页面创建项目【了解即可】

1、打开 https://start.spring.io/

2、填写项目信息

3、点击 ”Generate Project“ 按钮生成项目;下载此项目

4、解压项目包,并用IDEA以Maven项目导入,一路下一步即可,直到项目导入完毕。

5、如果是第一次使用,可能速度会比较慢,包比较多、需要耐心等待一切就绪。

项目创建方式二:使用 IDEA 直接创建项目

1、创建一个新项目

6452aeeac1394b30bbcac53c83c9b77d

2、选择spring initalizr , 可以看到默认就是去官网的快速构建工具那里实现

44ef5e79adce4aa4b7c3e6679406ab50


3、填写项目信息

ca2ef7dabee74367ab1bd4cda70ae2a1


4、选择初始化的组件(初学勾选 Web 即可)

cc6d9c05cb9a4714b3d719c4e413c4f0


5、填写项目路径

6、等待项目构建成功

项目结构分析

通过上面步骤完成了基础项目的创建。就会自动生成以下文件。

c93997b92ca1487db5f345bfcb392074


1、程序的主启动类

2、一个 application.properties 配置文件

3、一个 测试类

4、一个 pom.xml

分析 pom.xml 文件

org.springframework.boot    spring-boot-starter-parent    2.3.3.RELEASEorg.springframework.boot        spring-boot-starter-web    org.springframework.boot        spring-boot-starter-test        testorg.junit.vintage                junit-vintage-engine            org.springframework.boot            spring-boot-maven-plugin        1234567891011121314151617181920212223242526272829303132333435363738

如上所示,主要有四个部分:

  • 项目元数据信息:创建时候输入的 Project Metadata 部分, 也就是Maven项目的基本元素,包括: groupld、 artifactld、 version、name、description等。
  • parent:继承 spring-boot-starter-parent 的依赖管理,控制版本与打包等内容。
  • dependencies:项目具体依赖,这里包含了 spring-boot-starter-web 用于实现HTTP接口(该依赖中包含了Spring MVC),官网对它的描述是:使用 Spring MVC 构建Web (包括RESTful) 。应用程序的入门者,使用Tomcat作为默认嵌入式容器。 spring-boot-starter-test 用于编写单元测试的依赖包。
  • build:构建配置部分。默认使用了 spring-boot-maven-plugin,配合spring-boot-starter- parent 就可以把 Spring Boot 应用打包成JAR来直接运行。

编写一个http接口

1、在主程序的同级目录下,新建一个controller包【一定要在同级目录下,否则识别不到

2、在包中新建一个HelloController类

@RestControllerpublic class HelloController {        @RequestMapping("/hello")    public String hello(){        return "hello world";    }    }123456789

3、编写完毕后,从主程序启动项目,浏览器发起请求,看页面返回

  • 控制台数据了 SpringBoot 的 banner
  • 控台数据了 Tomcat 访问的端口号
  • 访问hello 请求,字符串成功返回
    4、将项目打包成 jar 包
6523770cdd4a4917b3d01f3dbd297c60

5、打成jar包之后,就可以在任何地方运行测试了。

用java -jar命令运行,在浏览器再次访问即可。

605ba636d1914c6182bdd833d1616fae

扩展:修改 banner 图案

在线成功你想要图案:https://www.bootschool.net/ascii

只需一步:到项目下的 resources 目录下新建一个banner.txt 即可。

找一个你喜欢的图案复制进去运行即可看到效果。

cd2ee5ae99fa4079b9696ceced95d21d

转发+关注 私信【资料】 免费领取资料


也会持续更新后面的内容!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值