Java全栈

第8周 初识SpringBoot

第1章 Java Web发展史与学习Java的方法

1-2 java web框架的发展历史

在这里插入图片描述

1-3 SpringBoot与面向抽象编程

SpringBoot基础还是SpingMVC,很多类和调用的函数都是出自SpringMVC,SpringMVC配置过于繁琐,SpringBoot解决最大的问题就是简化了配置。SpringBoot最大的思想就是约定大于配置,配置满足了软件开发的灵活性,但是配置太多

Interface 抽象 面向接口/抽象 面向具体
1 2 3 interface
在没有SpringBoot以前很多配置都是在xml中
SpringBoot是自动装配
IOC 依赖注入

SpringBoot还有一个非常大的优势就是集成了很多第三方库,甚至这些第三方库都已经给配置好了,只需要在maven的xml中输入第三方库就可以直接使用了,如果我们要在SpringBoot中引入第三方库有时候连版本号都不需要输入,SpringBoot可以直接找到当前版本能够用的第三方库的版本

第2章 环境与常见问题踩坑

2-1 完全搞懂SpringBoot版本号

Spring官网
Spring有非常多的项目,SpringBoot只是其中的一个,Spring更多的时候指代的是Spring全家桶。
在这里插入图片描述
优先选择GA标签的,更应该选有current标签的

2.7.1.RELEASE
2 主版本,比较稳定通常不会变,除非有了非常大的机制或架构调整,多个主版本之间一般是不兼容的。比如Spring 1.x到 2.x Python2到Python3
7 次版本 发布新特性 要保证兼容
1 增量版本 bug修复
RELEASE 发布版本、里程碑版本
RC
Alpha
Beta
GA
SNAPSHOT 依然是可以用的,这是稳定性比如GA
General Availability 通用的 可用的

2-2 JDK版本的选择与安装

官网下载JDK

2-3 Java的来两种构建工具:Maven与Gradle

XML Groovy
Gradle也是复用Maven中央仓库的包

2-4 maven的作用与安装

Apache maven官网下载地址
下载安装包并解压,把目录加入到环境变量中。安装完成执行mvn -v查看版本号

构建工具
项目引入jar包有可能引用关系非常复杂,比如A引用B,B引用C,C引用D。
没有maven时,A项目需要手动引入B这个jar包,再引入依赖的C,再引入依赖的D,如果D修改了还要相应的修改C修改B。有了maven只需要关心我们直接引入的依赖B,B的依赖由maven自己管理。

2-5 开发工具使用Idea和三种创建SpringBoot项目的方式

在这里插入图片描述
Java对于IDE的利用是非常高效的

创建SpringBoot的应用程序
  1. Idea
  2. SpringBoot 官网初始化
  3. Maven

2-6 使用Spring Initializr初始化SpringBoot应用程序

Spring官网点击Building web applications with Spring Boot and Kotlin
在这里插入图片描述
在这里插入图片描述

在左边配置构建工具、开发语言、版本号、Group、Artifact、打包方式等信息,右边添加依赖的jar包,点击下方GENERATE按钮生成项目,会自动打包成zip下载
在这里插入图片描述
下载的zip包解压缩,用Idea打开
在这里插入图片描述

2-7 SpringBoot应用程序的基本目录结构

在这里插入图片描述

2-8 POM文件解析与Maven版本踩坑

用Idea插件创建SpringBoot项目配置的内容和官网都是一样的
在这里插入图片描述
可以选择默认的JDK也可以点击New从硬盘上选择JDK
在这里插入图片描述
在这里插入图片描述
添加依赖jar包
在这里插入图片描述
idea创建的项目和在Spring官网创建的项目是一样的。mvnw、mvnw.cmd、HELP.md可以删掉
在这里插入图片描述

SpringBoot会自己管理它的相关依赖,保证他们是正确的版本
在这里插入图片描述

maven配置阿里镜像

    <repositories>
        <!-- 阿里云镜像-->
        <repository>
            <id>aliyun</id>
            <name>aliyun</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
    </repositories>

第3章 springboot的路由与控制器

3-1 运行我的第一个SpringBoot应用

3-2 新建API包与控制器

在这里插入图片描述

小程序强制更新

MVC 设计模式
Controller Model View

3-3 使用ResponseBody注解代替ServletResponse

类名字叫Controller需要标上注解SpringBoot才知道它是一个控制器的类,SpringBoot启动的时候就会去加载这个类。一个控制器下会定义多个路由方法,传入参数"/test"就是当前路由的URL

@Controller
public class BannerController {

    @GetMapping("/test")
    public String test(){
        return "Hello,雪";
    }
}

在这里插入图片描述

访问进入断点但是页面404,Java中控制器返回这段文本需要先获取到Servlet的Response对象,获取到response对象之后需要把字符串写入到response对象中去,然后返回response对象才能返回这段文本

    @GetMapping("/test")
    public void test(HttpServletResponse response) throws IOException {
        response.getWriter().write("Hello,雪");
//        return "Hello,雪";
    }

在这里插入图片描述

    @GetMapping("/test")
    @ResponseBody
    public String test(HttpServletResponse response) throws IOException {
//        response.getWriter().write("Hello,雪");
        return "Hello,雪";
    }

打上@ResponseBody注解,它就会负责把文本写入到response的writer里面去,不需要自己手动操作Servlet对象了
使用@ResponseBody会自动帮我们标注上response header

测试接口用Postman

3-4 SpringBoot热重启配置

SpringBoot热部署

3-5 几个常用构建RestfulAPI的注解

Spring几个常用构建RESTFulAPI的注解
@GetMapping
@PostMapping
@PutMapping
@DelMapping
@RequestMapping(value = “/test”,method = {RequestMethod.GET,RequestMethod.POST})
如果一个控制器中所有的路由方法都是restfulAPI 用@RestController
实际项目中URL要有自描述性

在这里插入图片描述

3-6 @RestController注解

在这里插入图片描述

第10周 Spring与SpringBoot理论篇

第1章 Spring与SpringBoot导学

1-1 SpringBoot理论篇导学

1-2 Spring、SpringMVC与SpringBoot的关系与区别

SSM Spring + Spring MVC + MyBatis

Spring Framework

Spring全家桶中最为基础最为重要的是Spring Framework
Spring模块图
在这里插入图片描述
SpringBoot中很多基础功能还是源于Spring Framework,比如@Component、@Controller。SpringBoot是Spring Framework的应用。SpringBoot是利用Spring Framework抽象出来的更好用的上层框架。

1-3 什么是SpringBoot核心优势-自动配置(作业)

自动配置 有什么用

1-4 把握Spring的几个重要目的,提升学习效率

OCP -> IOC
IOC实现:容器 加入容器 注入
灵活性 要兼顾各种场景

目的:
抽象意义:控制权交给用户
灵活的OCP

第2章 Spring IOC的核心机制:实例化与注入

2-1 SpringBoot最基础的编程模式@Component+@Autowired

XML注解的方式

注解
stereotype annotations模式注解

@Component
在类上标注@Component注解SpringBoot就会自动把这个类加入到容器,SpringBoot会负责这个类的实例化,

@Component
public class Diana {
    public Diana() {
        System.out.println("Hello,Diana");
    }

    public void q(){
        System.out.println("Diana Q");
    }

    public void w(){
        System.out.println("Diana W");
    }

    public void e(){
        System.out.println("Diana E");
    }

    public void r(){
        System.out.println("Diana R");
    }
}
@Controller
@RequestMapping("/v1/banner")
public class BannerController {

    @Autowired
    private Diana diana;

    @GetMapping("/test")
    @ResponseBody
    public String test(HttpServletResponse response) throws IOException {
        diana.r();
//        response.getWriter().write("Hello,雪");
        return "Hello,雪";
    }
}

使用SpringBoot完成类的实例化:1. 类上标注@Component 2. 使用时标注@Autowired

@Service
public class BannerServiceImpl implements BannerService{

}
    @Autowired
    private BannerService bannerService;

2-2 Stereotype Annotations 模式注解

Spring之模式注解

看起来BannerController和入口类MissyouApplication没有任何联系,但是他们之间是有桥接点的,桥接点就是IOC容器。Spring会把BannerController加入到IOC容器中,通过IOC进行实例化,@RestController中包含@Component

2-3 Spring的实例化和依赖注入时机与延迟实例化

Spring的实例化和依赖注入时机与延迟实例化

2-4 成员变量注入、Setter注入与构造注入

Spring常用的三种依赖注入方式

2-5 一个接口多个实现类的处理

@Autowired的注入方式

2-6 @Autowired按类型注入

2-7 被动推断注入与主动选择注入

2-8 应对变化的两种方案(策略模式与属性配置)

面向对象中变化的应对方案

1.制定一个interface,然后用多个类实现同一个interface——策略模式
2.一个类,通过更改类的属性 解决变化
两种方法是配合去使用的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java知识体系是指掌握Java语言及其应用于不同技术领域的相关知识。Java是一种广泛应用于后台开发、大数据处理、移动开发以及前端开发的编程语言,因此Java开发人员需要掌握一系列技术和工具。 首先,Java开发人员需要具备扎实的Java语言基础,包括面向对象编程、多线程编程、异常处理等知识。此外,掌握Java的核心类库也是必要的,比如集合框架、IO流、网络编程等。 其次,Java开发人员需要熟悉Web开发技术,包括JavaWeb开发、JavaEE技术、Servlet、JSP、Spring MVC等。这些技术用于实现Web应用的后台逻辑和与前端页面的交互。 另外,Java开发人员需要了解数据库相关知识,包括数据库的设计和管理,SQL语言,以及Java与数据库的交互技术,比如JDBC、ORM框架如Hibernate和MyBatis等。 此外,Java开发人员还需要掌握前端开发技术,如HTML、CSS、JavaScript、Ajax等,以便实现Web应用的前端页面和与后端的交互。 对于移动开发,Java开发人员需要了解Android开发技术,包括Android框架、Android Studio开发环境、Android组件等。 最后,Java开发人员还可以扩展其他领域的知识,如大数据技术(Hadoop、Spark)、云计算等,以应对当前技术的变化和市场需求。 总之,Java知识体系是一个综合性的技术体系,要求开发人员在Java语言基础上熟悉Web开发、数据库、前端开发以及可能的其他领域的知识,以能够独立完成从后端到前端的整个应用开发过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三毛村滴雪鱼粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值