栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot 框架学习笔记(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot 框架学习笔记(一)

Spring Boot 框架学习笔记(一)
  • 一. 回顾:Spring、SpringMVC
    • 1.1 Spring框架
    • 1.2 Spring MVC框架
  • 二. Spring Boot
    • 2.1 Spring Boot 诞生
    • 2.2 Spring Boot 的理解
    • 2.3 主要特性
    • 2.4 集成第三方框架步骤
  • 三. 缘起Hello World

一. 回顾:Spring、SpringMVC 1.1 Spring框架

Spring框架最核心特性IoC(控制反转)或者DI(依赖注入),以及AOP的容器框架。
它使得开发的耦合度降低,扩展性增强,从而简化企业开发,可以跟很多很多的第三方框架进行整合,例如MyBatis等等

(1)IOC是什么?

控制反转,帮我们管理Bean,创建和初始化(依赖)

(2)AOP是什么?

面向切面编程,在不改变原来代码的基础增加新的功能,底层实现动态代理(Java动态代理或者CGLIB的动态代理),
增强代码的位置:前置、后置、返回、异常、环绕

1.2 Spring MVC框架

Spring MVC提供另一条友好的开发WEB应用程序(类似于Struts2框架)

(1)模板引擎是什么

模板引擎为了使用户页面和业务数据相互分离而产生,它将从后台返回的数据生成特定格式的文档,用于网站的模板引擎就是生成HTML文档。

(2)未来发展

在未来发展过程,基本上不会在使用模板引擎(JSP、Freemark,Thymeleaf)。使用模板引擎的目的是为了动态生成HTML页面

技术发展到现在,早已做到了动静分离(涉及到数据的传输格式,大部分都使用JSON格式,没有了动态生成html页面的过程),静态资源(HTML/JS/CSS/图片)静态资源会在一个单独的服务器(Nginx)

二. Spring Boot 2.1 Spring Boot 诞生

在Spring Boot诞生之前,我们自己搭建SSM框架整合的过程中**,使用Spring框架需要配置很很多的文件(XML文件或者Java配置类)**,为了向Spring Boot转变的过程,我们特意忽略XML配置,直接使用Spring注解方式(即使使用注解,依旧要配置很多东西)。

随着WEB项目应用的需求的变化,我们大家环境之间的框架会越来越多(比如MongDB,Redis等框架),XML配置文件也会不断增加,容易造成配置文件难以理解并且“容易出错”。并且我们会发现很多的配置文件之间的配置内容总是不断重复,一般 我们会直接使用粘贴复制大法。

项目重复性太多、相同的配置太多、增加了工作量,所以我们可以把重复部分提取出来(构建一个应用场景,提供了最基本的配置方案(默认配置))

2.2 Spring Boot 的理解

(1)自己接电线和标准化插座

Spring Boot的配置方式,就是像标准化的插头插座,都是有提供“统一标准(约定)”。

当使用第三方开源框架的时候,想进入Spring Boot生态圈,必须实现Spring
Boot提供标准,才能使用(需要按照标准制作一个starter场景适配),提供最基本的使用配置,我们也可以去改变默认的配置。

单独使用Spring MVC就像手动接线,很灵活,但是由于每个人不同的使用方式,接出来的效果会千差万别,而且容易出错,造成接手人员不适应。


SpringBoot虽然灵活性不如单独Spring MVC的方式,但是我们使用SpringBoot之后,不用清楚出内部是如何设计,我们只是会使用而已(但是对于我们自己,还需要知道内部是如何使用),话说回来,当我们习惯使用插头插座的时候,你不会期望自己成为电工。


Spring Boot的目标不在于为已解决的问题提供新的解决方案(SSM自己搭建),而是为平台带来一种新的开发体验(内部还是SSM搭建方案),换汤不换药,Spring Boot只是简化技术使用(配置和处理):

  • 使配置变简单
  • 使监控变简单
  • 使部署变简单(内置WEB服务器,不需要我们自己配置)
  • 使开发变简单(定制也不会太简单)
2.3 主要特性
  • 遵循“约定优于配置”的原则,简化配置(最重要)
  • 可以完全脱离XML配置文 件,采用注解配置
  • 内嵌Servlet容器,应用可以使用jar方式执行:java -jar
  • 开发完成项目搭建(Maven或者Gradle),整合第三方类库,方便使用(实现标准)
  • 提供starter,能够非常方便的进行包的管理,简化包管理配置(基本不要我们管理包的版本)
  • 最大优势:微服务可以与Spring Cloud天然无缝集成,Spring Boot目前Java体系中实现微服务的最佳方案之一
2.4 集成第三方框架步骤

(1)使用Maven引入springboot-XXX-starter资源(资源一定实现Spring Boot标准,提供默认的配置项,我们可以自定义)

(2)自定义:可以修改Spring Boot平台的默认配置文件application.properties或者application.yaml

(3)加入一个Java Config 配置类,属于个性化配置,如果采用默认配置,就不需要建立配置类

三. 缘起Hello World
  1. 创建Spring Boot项目,项目Maven的配置

  2. Spring MVC的场景:提供默认的配置项,直接可以使用(不需要你做任何事情)

  3. 创建完成

  4. 新建控制器,设置映射路径

package com.yue.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloWorldController {
    @ResponseBody
    @GetMapping("/hello")
    public String test01(){
        return "你好,世界!"+Math.random();
    }
}

  1. 启动主程序,访问映射路径(不需要写任何配置,不需要自己配置服务器)


    运行成功,由此我们知道不用配置SpringMVC依旧可以访问。那么SpringBoot默认引用了什么配置呢?我们去该项目下的pom文件中查看:
 
            org.springframework.boot
            spring-boot-starter-web
 

通过此项依赖,即可引入SpringMVC。
并且不需要自己配置版本
Spring MVC的场景适配,提供了针对于Spring Boot版本对应的Spring MVC的版本,并且提供了默认的配置项

  1. 注意:

默认情况下,扫描的是主程序操作的包以及子包
所以如果建立控制器的位置在其以外会扫描不到

那么当我们的控制器不在其扫描范围的时候,解决方法如下:

改变主程序中@SpringBootApplication的属性scanbasePackages的值:
默认为空,按照当前目录找
经查看其源码发现它就是个数组,所以此时添加控制器所属路径的字符串即可
如@SpringBootApplication(scanbasePackages ={“com.yue”,"org.os"})

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298611.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号