【从入门到学废---SpringBoot】

SpringBoot初识

JAVA WEB发展史

web的产生

静态资源的发布媒介 html http url

动态资源的展示 http 参数的不同 返回不同的信息

CGI的诞生

协议/标准 把参数写进环境变量里 启动CGI的程序获取参数后返回动态的结果(工作模式) 一笔请求 => 启动一个CGI程序 耗费资源

巨头公司“腾讯”部分业务 c++服务端 php前端页面

java解决方案

applet 浏览器的插件 把服务端传过来的java代码在插件中解释执行 (客户端执行代码)

servlet = server + applet 服务端解决方案

​html标签 + 动态代码 + 放到大 servlet类里 去输出

  out.println("<html><title>");
  out.println("hello"+name);
  out.println("</html></title>");

jsp = java server pages

解决样板代码的问题

 <html><title>hello <%name%> </title></html>

mvc分层思想

​model javabean 数据层 ​ view jsp 展示层 ​ controller 业务控制类
控制层 接收请求 查找返回页面 生成页面的数据 结合一起 返回动态页面

ajax 渲染部分页面   js整个技术的一个基石

Spring

 without EJB => spring框架  ioc aop

ioc ----控制反转 di 依赖注入
本质:构建对象的技术

​单例模式 Spring 用工厂来创建对象的方式 ​
容器----对象之间的依赖关系 A 属性B

​程序获取对象时 容器会自动注入对象给程序(从容器的角度) => 依赖注入 ​
本应该程序自己来控制的对象,交给容器帮我们控制 (从程序的角度) => 控制反转

aop 面向切面编程

​            系统中有多个模块   模块A   日志打印  异常获取   事务管理  等等   模块B  C
​            各个模块的交叉关注点    非核心业务逻辑   通用的处理方案来解决

   配置繁杂

SpringBoot

​       引导你更便捷的使用spring

未来

​       总结  技术诞生的规律 : 新技术的诞生用来解决现存技术的痛点
​       异步化   spring5  响应式编程

约定由于配置

小到配置文件,中间件的默认配置,大到内置容器、生态中的各种Starters无不遵循此设计规则

Maven必备

想要更加深入的学习Maven,可以参考【从入门到学废—Maven】全站最强Maven学习笔记

why Maven

1.自动关联和下载依赖的jar包,便捷升级框架的版本。
	不仅是构建工具,它还是依赖管理工具和项目管理工具,提供了中央仓库,能够帮我们自动下载构件。
	为了解决依赖的增多,版本不一致,版本冲突,依赖臃肿等问题,它通过一个坐标系统来精确的定位每一个构件。
2.提供统一的规范,约定优于配置,利于合作。
3.扩展性好,支持各类插件,涉及到方方面面,比如编译、打包、依赖检查、web容器启动,用例执行等等。

Maven 基础

Maven是一个项目管理工具
可以帮助我们管理jar包
帮助我们编译源代码
帮助进行单元测试
帮助进行项目自动部署
jar包管理通过配置文件,在仓库中储存
仓库分三类:本地仓库、远程仓库、中央仓库。

Maven中央仓库是由Maven社区提供的仓库
其中包含了大量常用的库
如果Maven在中央仓库也找不到依赖的文件,它会停止构建
为避免这种情况,开发人员会自己定制仓库,叫远程仓库。
运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。
如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库构建。

我们项目要经历编译、测试、运行、打包、安装、部署等一系列,这些过程我们称为构建。Maven可以一个命令就完成整个工作。

编译          测试       打包            安装        发布
compile     test        pachage      install      deploy(需要配置)

Maven----pom.xml

Maven项目的核心是pom.xml文件
POM(project object model,项目对象模型),定义了项目的基本信息。

相关概念太多,待更

lombok插件

简介

Lombok是一个可以通过注解形式来帮助我们简化消除样板式代码的工具。
通过使用注解,可以在编译源码的时候生成对应的方法。 

安装插件

打开IDEA->Preferences(Mac版)/Settings(Windows版)->Plugins
搜索lombok->点击install

如图所示在这里插入图片描述

pom导入依赖

 <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.18</version>
 </dependency>

lombok插件常用注解

@Getter/@Setter:可以作用在类上和属性上,
@EqualsAndHashCode:
@ToString:
@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
@Data
@Budilder
@Slf4j

lombok插件原理

实现的原理:主要是通过抽象语法树(AST),在编译处理后,匹配到有其注解的类,那么注解编译器就会自动去匹配项目中的注解对应到在lombok语法树中的注解文件,并经过自动编译匹配来生成对应类中的getter或者detter方法,达到简化代码的目的。

具体步骤:
1.其开发是遵循JSR 269 Pluggable Annotation Processing API
2.而javac从java6开始支持“JSR 269 API”规范
3.即只要程序实现了该API,就能在javac运行的时候得到调用
4.lombok实现了“JSR 269 API”,在编译源码的具体流程如下图:

在这里插入图片描述

搭建hello world

开箱即用

基础环境

  • JDK-1.8
  • Maven-3.6.3
  • IDEA-2020
  • SpringBoot-2.1.8.release

搭建项目步骤

  1. Idea中创建项目
  2. 引入依赖
  3. 创建入口和控制类
  4. 执行验证

设计理念

  1. 快、很快、非常快
  2. 进可开箱即用,退可按需改动
  3. 不生成代码,无xml配置

HelloWorld示例

  1. 创建一个maven项目
    在这里插入图片描述
  2. 加入依赖
   <!--超级父pom  是springboot父依赖   声明版本号-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
    </parent>

    <dependencies>

        <!--web项目需要使用的-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>
  1. 打开程序入口
package com.uncle;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @program: test-spring-boot
 * @description:
 * @author: 步尔斯特
 * @create: 2021-05-07 15:02
 **/
@SpringBootApplication
public class TestApplication {
    //使用SpringApplication类的静态方法  启动springboot程序
    //方法的参数  程序的入口类  main函数的参数
    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class,args);
    }
}

  1. 业务逻辑
package com.uncle.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @program: test-spring-boot
 * @description:
 * @author: 步尔斯特
 * @create: 2021-05-07 15:05
 **/
@RestController
public class HelloWorld {

    @RequestMapping("/hello")
    public String hello() {
        return "hello world!!!";
    }
}

  1. 运行
    在这里插入图片描述

热部署配置

  1. pom文件引入依赖
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
 </dependency>
  1. idea的setting配置

    勾选build project automatically
    

在这里插入图片描述

  1. 设置idea的registry

    勾选compiler automake allow when app running
    

在这里插入图片描述

打包可执行jar

pom文件引入

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

三种启动方式

  1. Application----Run
  2. mvn spring-boot:run
  3. mvn packag ---- java -jar

SpringBoot配置

配置文件说明

常用配置说明

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值