学习记录

174 阅读5分钟

Spring Boot 学习记录

2022/1/18

开始着手准备学习spring boot 参考资料为 雷神的blbl视频 参考官方文档 docs.spring.io/spring-boot…

编写Hello world

第一步

参考POM 4.1 image.png image.png

maven配置

<parent>
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>2.5.8</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

第二步

编写主程序类

/**
 * 第一步:设置
 * 主程序类
 * @SpringBootApplication:让idea知道这是一个Springboot应用 MainaApplication
 *  hello的运行 就直接在主类运行Main方法即可
 */
@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class,args);
    }
}

controller 层完成 Hello

//@ResponseBody//二,使用放在这里
//@Controller

@RestController//这个就是整合上面两个的 @ResponseBody @Controller  方便
public class HelloControllect {

//    @ResponseBody//一,可以放在这里但是每一次都要加的画 就放在开头
    @RequestMapping("/hello")
    public String handle01(){
        return "Hello,SpringBoot2";
    }
}

第三步

运行

1.2、自动配置

参考资料 www.yuque.com/atguigu/spr…

  • 自动配好Tomcat
    • 引入Tomcat依赖。
    • 配置Tomcat
<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>2.3.4.RELEASE</version>
      <scope>compile</scope>
    </dependency>
  • 自动配好SpringMVC
    • 引入SpringMVC全套组件
    • 自动配好SpringMVC常用组件(功能)
  • 自动配好Web常见功能,如:字符编码问题
    • SpringBoot帮我们配置好了所有web开发的常见场景
  • 默认的包结构
    • 主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来
    • 无需以前的包扫描配置
    • 想要改变扫描路径,@SpringBootApplication(scanBasePackages= "com.atguigu" )
      • 或者@ComponentScan 指定扫描路径
@SpringBootApplication
等同于
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.atguigu.boot")
  • 各种配置拥有默认值
    • 默认配置最终都是映射到某个类上,如:MultipartProperties
    • 配置文件的值最终会绑定每个类上,这个类会在容器中创建对象
  • 按需加载所有自动配置项
    • 非常多的starter
    • 引入了哪些场景这个场景的自动配置才会开启
    • SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里面
  • ......
即以hello项目为例

image.png

  • -只要在boot包下的东西都可以被扫描到
    • 如果在 chen 里面创建 的扫描不到

如果非要改则

在主程序中的 @SpringBootApplication(scanBasePackages= "com.chen" )

2022/1/19

学习spring boot 的过程中发现神的blbl视频源码涉及有点多可能不适合我入门(仅本人) 使用更改参考资料

研究黑马程序员的springboot视频 现在看到p14 www.bilibili.com/video/BV15b…

参考官方文档 docs.spring.io/spring-boot…

前面的东西比较基础也重复了 过了一遍 然后补充知识的Rest风格不熟悉 即记录一下

image.png

还没有动手写 就参考别人的学习资料blog.csdn.net/qq_42324086…

知识加油站-01-REST风格简介

什么是 rest :

  1. REST(Representational State Transfer)表现形式状态转换

传统风格资源描述形式

http://localhost/user/getById?id=1 (得到id为1的用户)

http://localhost/user/saveUser (保存用户)

REST风格描述形式

http://localhost/user/1 (得到id为1的用户)

http://localhost/user (保存用户)
  1. 优点:

    • 隐藏资源的访问行为, 无法通过地址得知对资源是何种操作
    • 书写简化
  2. 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作

重点

GET 用来获取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源

  1. 上述行为是约定方式,约定不是规范,可以打破,所以称REST风格,而不是REST规范
    描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源,例如: users、 books、 accounts…
  2. 根据REST风格对资源进行访问称为RESTful
  3. 小结:
    1. REST
    2. 动作4个
    3. RESTful

知识加油站-02-RESTful 入门案例

最基础的对比

传统

image.png

REST风格 image.png

重点

image.png

image.png

2022/1/20

现在是刚过12.不久 继续看黑马程序员的spring boot 努努力p15开始后面能看多少是多少啧啧啧 争取明天看到整合 然后对于web的开发 看看到时要不要和雷神的视频同步看

模块化

弄了给干净的模板 开始学习如何更改服务器端口

新建 application.properties

image.png

#更改服务器端口
server.port=8080

其他

##修改banner
#spring.main.banner-mode=off
##就是关闭那个图像
#日记
#logging.level.com.chen=warn

其他的参考官方文档

docs.spring.io/spring-boot…

image.png

SpringBoot提供了多种属性配置方式

如果配置多了 太多放在一起看着难受

可使用yml或yaml格式

yml和yaml 叫yaml格式 但是后缀yml用的比较多

通常用yml格式主流

三种配置方式:

application.properties

server.port=80

1 application.yml

server:
  port: 81

application.yaml

server:
  port: 82

配置文件加载优先级

SpringBoot配置文件加载顺序

application.properties > application.yml > application.yaml

常用配置文件种类

application.yml

小结:

配置文件间的加载优先级

properties(最高)

yml

yaml(最低)

不同配置文件中相同配置按照加载优先级相互覆盖 (高优先级配置内容会覆盖低优先级配置内容), 不同配置文件中不同配置全部保留

要是yaml不能用 或者新建yaml以后 yml不能用了

image.png

image.png

则打开

image.png

image.png

yaml语法规则

  • 基本语法
    • key: value -> value 前面一定要有空格
  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
  • # 表示注释

核心规则:数据前面要加空格与冒号隔开

server:
  servlet:
    context-path: /hello
  port: 82