SpringBoot自动装配

一、SpringBoot中配置文件的优先级?

  • SpringBoot除了支持properties的配置文件格式以外,还支持yaml格式的配置文件(yaml或yml)。

A. application.properties

server.port=8080

B. application.yml

server:
  port: 8081

C. application.yaml

server:
  port: 8082

注意事项:

  • 虽然SpringBoot支持多种格式的配置文件,但是在项目开发时,推荐统一使用一种格式的配置(yml是主流)。
  • SpringBoot 除了支持配置文件属性配置以外,还支持Java系统属性和命令行参数的方式进行属性配置。

A. Java系统属性配置

-Dserver.port=9000

如果我们的应用程序是在IDEA中运行,可以在IDEA工具栏的 "VM options" 栏设置Java系统属性。

 

B. 命令行参数配置

--server.port=10010

如果我们的应用程序是在IDEA中运行,可以在IDEA工具栏的 "Program arguments" 栏设置命令行参数。

 

如果项目开发完了,打包运行,我们可以在运行jar包时,在命令行中加入指定参数:

  • 执行maven的打包指令package(或者直接通过图形化界面操作)

  

  • 执行java命令,运行jar包

java -Dserver.port=9000 -jar tlias-web-management-0.0.1-SNAPSHOT.jar --server.port=10010

注意事项:

  • SpringBoot项目进行打包时,需要引入插件 spring-boot-maven-plugin (通过官方骨架创建的工程自带了)。

二、SpringBoot中配置端口有哪些方式,优先级是怎样的?

  •  application.yaml
  • application.yml
  • application.properties
  • Java系统属性(-Dxxxx=xxxx)
  • 命令行参数(--xxxx=xxxx)

这些配置的优先级,我们可以参考官方文档:

三、能够说出bean的两种常见的作用域及如何设置作用域?

Spring 支持五种作用域,后三种在 web 环境才生效

作用域

说明

singleton

容器内同 id 的 bean 只有一个实例(单例)(默认)

prototype

每次使用该  bean 时会创建新的实例(非单例)

request

每个请求范围内会创建新的实例(web环境中,了解)

session

每个会话范围内会创建新的实例(web环境中,了解)

application

每个应用范围内会创建新的实例(web环境中,了解)

四、怎么使用@Bean注解来管理第三方bean

通过 @Bean 注解的name属性 或 value 属性可以声明 bean 的名称,如果不指定,默认bean的名称就是方法名。

  • 如果要管理的第三方 bean 比较多,建议对这些bean进行集中分类配置,可以通过 @Configuration 注解声明一个配置类。

五、@Conditional注解和@Import注解的作用是什么?

通过 @Bean 注解的name属性 或 value 属性可以声明 bean 的名称,如果不指定,默认bean的名称就是方法名。

@Component 及 衍生注解 与 @Bean注解的使用场景:

  • 项目中自定义的,直接使用@Component及其衍生注解来声明bean即可。
  • 项目中引入的第三方的,使用@Bean注解声明bean即可。

六、简要的说出springboot自动配置的原理?

Spring家族的其他框架都是基于SpringFramework的。 但是直接使用Spring框架进行集成开发比较繁琐,入门难度很大,所以在现在的企业开发中,都是直接基于Springboot进行开发,简单、快捷、高效,而且spring官方也是建议直接从springboot开始。

原因主要有两点:

  • 起步依赖
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
	
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.2</version>
    </dependency>
	
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

 这里看到的spring-boot-starter-xxx 就是 SpringBoot的起步依赖。SpringBoot通过提供众多起步依赖降低项目依赖的复杂度。起步依赖本质上是一个Maven项目对象模型,定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。很多起步依赖的命名都暗示了他们提供的某种或某类功能。

  • 自动配置
    • SpringBoot的自动配置就是当spring容器启动后,一些配置类就自动装配的IOC容器中,不需要我们手动去声明,从而简化了开发,省去了繁琐的配置等操作。
    • 要想明白SpringBoot 自动配置原理,先需要明白两个前置知识 @Conditional 条件注解 和 @Import 导入配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值