简单分析springboot的源码

springboot的pom文件的起步依赖以及功能依赖

每一个版本的起步依赖中,都集成了相应的一整套的功能依赖,所需要的一套依赖

springboot的起步依赖注解@SpringBootApplication简单分析

@SpringBootApplication注解包含以下主要的注解,在起步依赖上加入以下注解也可以实现springboot的起步依赖配置

  1. @SpringBootConfiguration:
    其本质是**@Configuration**注解,声明该类为配置类
  2. @EnableAutoConfiguration:
    自动配置注解:
    包含:@Import({AutoConfigurationImportSelector.class})注解,此注解表明该注解需要引入AutoConfigurationImportSelector类的信息
    →AutoConfigurationImportSelector:该方法是加载自动配置的主要方法
    →selectImports:在此方法中加载自动配置的
    →this.getAutoConfigurationEntry
    →this.getCandidateConfigurations:在这里会发现一句话:No auto configuration classes found in META-INF/spring.factories,找到该类对应的包(package org.springframework.boot.autoconfigure)对应的META-INF/spring.factories文件,点开之后发现有很多的全类名
    随便点开一个类(例如:ServletWebServerFactoryAutoConfiguration),找到(@EnableConfigurationProperties({ServerProperties.class})),点开ServerProperties,会发现
@ConfigurationProperties(
prefix = "server",
ignoreUnknownFields = true
)

其中prefix声明前缀为server,例如会加载server. port配置(声明端口的配置),其中加载的配置在该文件所在位置对应的spring-configuration-metadata.json文件中,可以找到

{
"name": "server.port",
"type": "java.lang.Integer",
"description": "Server HTTP port.",
"sourceType": "org.springframework.boot.autoconfigure.web.ServerProperties",
"defaultValue": 8080
}

该json中间中声明端口号默认为8080
如果想修改该配置文件:在pom文件中spring-boot-starter-parent中已经声明,会扫描.yml或者是.properties中的配置信息(必须以指定的前缀才会被扫描到),在resources下创建一个application.properties配置文件,配置文件中可以指定项目启动时的端口号或者是项目的名称:

#指定端口号为8081
server.port=8081
#指定项目的路径为/dmeo
server.servlet.context-path=/demo
  1. @ComponentScan:
    包扫描注解,该注解表明约定大于配置,会扫描该启动类下的所有包,将其注入到spring容器中
  2. @Target({ElementType.TYPE}):
    声明注解的使用范围,是在类上面或者是接口上面等等
  3. @Retention(RetentionPolicy.RUNTIME)
    声明注解的生命周期,是在运行时或者是编译时等等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值