Springboot基础知识点

一、配置优先级

SpringBoot 中支持三种格式的配置文件,优先级为:
application.properties > application.yml > application.yaml

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

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

  • Java系统属性:

Dserver.port=9000
  • 命令行参数
--server.port=10010
    1. 在idea中设置:
      在这里插入图片描述
    1. 若项目打包了:

在这里插入图片描述

  • 注:Springboot项目进行打包时,需要引入插件spring-boot-maven-plugin(基于官网骨架创建项目,会自动添加该插件)
  • 优先级:命令行参数>java系统属性
  • 优先级由高->低:

命令行参数>java系统属性>application.properties > application.yml > application.yaml

二、控制反转

  • Inversion Of Control,简称IOC。对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转。
Bean的声明

在这里插入图片描述

  • 声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写。
  • 使用以上四个注解都可以声明bean,但是在Springboot集成web开发中,声明控制器bean只能用@Controller。

三、依赖注入

  • Dependency Injection,简称DI。容器为应用程序提供运行时,所依赖的资源,称之为依赖注入。
3.1 Bean组件扫描
  • 前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan扫描。
  • @ComponentScan注解虽然没有显式配置,但是实际上已经包含在了启动类声明注解@SpringBootApplication中,默认扫描的范围是启动类所在包及其子包。
3.2 Bean注入
  • @Autowired注解,默认是按照类型进行,如果存在多个相同类型的bean,将会报错。
  • 通过一下几种方案来解决
    • @Primary
    • @Qualifier
    • @Resource
      在这里插入图片描述
  • @Resource与@Autowired区别
    • @Autowired是spring框架提供的注解,而@Resource是JDK提供的注解。
    • @Autowiredwired默认是按照类型注入,而@Resource默认是按照名称注入。

四、Bean对象

  • IOC容器中创建、管理的对象,称之为Bean。

五、Bean管理

5.1 获取bean
  • 默认情况下,Spring项目启动时,会把bean都创建好放在IOC容器中,如果想要主动获取这些bean,可以通过如下方式:
    • 根据name获取bean:Object getBean(String name)
    • 根据类型获取bean:<T> T getBean(Class<T> requiredType)
    • 根据name获取bean(带类型转换):<T> T getBean(String name,Class<T> requiredType)
5.2 bean作用域

在这里插入图片描述

  • 可以通过@Scope注解来进行配置作用域
  • 默认singleton的bean,在容器启动时被创建,可以使用@Lazy注解来延迟初始化(延迟到第一次使用时)。
  • prototype的bean,每一次使用该bean的时候都会创建一个新的实例。
  • 实际开发中,绝大部分的bean都是单例的,也就是说绝大部分bean不需要配置scope属性。
5.3 第三方bean
  • @Bean:如果要管理的bean对象来自于第三方(不是自定义的),是无法用@Component及衍生注解生命bean的,就需要用到@Bean注解。
  • 若要管理的第三方bean对象,建议对这些bean进行集中分类配置,可以通过@Configuration注解声明一个配置类。
    在这里插入图片描述
    在这里插入图片描述
  • 注意
    • 通过@Bean注解的name或value属性可以声明bean的名称,如果不指定,默认bean的名称就是方法名。
    • 如果第三方bean需要依赖其他bean对象,直接在bean定义方法中设计形参即可,容器会根据类型自动装配。
  • 29
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值