SpringBoot原理1.0

72 阅读2分钟

一、配置

  • SpringBoot中支持3种格式的配置文件:(配置文件属性配置)
server.port=8081
server:
    port:8082
server:
    port:8083

虽然SpringBoot中支持多种格式配置文件,但是在开发项目时,推荐统一使用一种格式的配置(yml是主流

  • SpringBoot除了支持配置文件属性配置,还支持 Java系统属性命令行参数 的方式进行属性配置

image.png这里引用了从母校黑马的ppt中截取一张图片😌感谢母校赏饭🍽️

SpringBoot项目进行打包时,需要引入插件 spring-boot-maven-plugin(基于官网骨架创建项目,会自动添加该插件)

小结:SpringBoot配置优先级(由高到低):

image.png

二、Bean管理

  • 首先什么是bean?,在这里小张(本人)给出了小豆(豆包)给出的解释:什么是bean?,在小豆的回答中也顺便给出了JavaBeanSpringBean的区别,小豆YYDS!
  • Bean的作用域:Spring支持5种作用域,后3种(如下图所示中左边的3个)在web环境中才生效:

Spring支持的5种作用域 - GitMind.jpg

如何配置bean的作用域?
此时需要用到一般“不出山”的 @scope注解 ->->-> 一般来说,beand的作用域默认是singleton,当需要配置非单例时,通过 @scope 注解属性配置为“prototype”。事例代码如下:

@scope("prototype")//配置bean的作用域
@RequestMapping("/depts")
@RestController
public class DeptController(){
}

⚠️默认 singletonbean ,在容器启动时被创建,可以使用 @Lazy 注解来延迟初始化(延迟到第一次使用)

----在这里小张感谢阿里云开发者社区大佬的文章通俗易懂的解释举例,敬礼🫡🫡🫡----

🚩据母校ppt中来讲:实际开发中,绝大部分的Bean是单例的,也就是说绝大部分Bean不需要配置scope属性

  • 第三方Bean

所谓第三方Bean,小张理解的就是Bean对象来自第三方(像Apache,Commons),不是自定义的,是无法用 @Component 以及其衍生注解的,就需要用到 @Bean 注解。

⚠️若要管理第三方的bean对象,建议对这些bean进行集中分类配置,可以通过 @Configuration 注解声明一个配置
IMG_1078.jpeg --该图依旧截取自母校ppt--

  1. 如果第三方bean需要依赖其他bean对象,直接在bean定义方法中设置形参即可,容器会根据类型自动装配。
  2. 通过 @Bean 注解的 namevalue 属性可以声明bean的名称,如果不指定,默认bean的名称就是方法名

OK了,家人们今天先到这,小张眼睛已经开始模糊了😵‍💫,小命要紧,各位看官大佬早点睡,tomorrow见!