Spring Boot | 1.6 主入口类

17 篇文章 0 订阅
15 篇文章 0 订阅

Spring Boot目录汇总地址:
https://blog.csdn.net/mengmengdastyle/article/details/80357203

一、@SpringBootApplication

Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用。

@SpringBootApplication
public class SpringbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
    }
}

SpringBootApplication类源码:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {

从源代码中得知 @SpringBootApplication 被 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解所修饰
(1)@SpringBootConfiguration:标注在某个类上,表示这是一个Spring Boot的配置类;
– @Configuration:配置类上来标注这个注解;
配置类 —– 配置文件;配置类也是容器中的一个组件;@Component

(2)@EnableAutoConfiguration:启用 Spring 应用程序上下文的自动配置,试图猜测和配置您可能需要的bean。

  1. @AutoConfigurationPackage:自动配置包,中
  2. @Import(Registrar.class):
    Spring的底层注解@Import,给容器中导入一个组件;导入的组件由Registrar.class将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;
  3. @Import({AutoConfigurationImportSelector.class}):
    将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;
    获取类路径下spring.factories下key为EnableAutoConfiguration全限定名对应值
SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader);

其结果为:

# Auto Configure  
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\  
org.springframework.boot.autoconfigure.aop.AopAutoConfiguration,\  
org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,\  
org.springframework.boot.autoconfigure.MessageSourceAutoConfiguration,\  
org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration,\  
org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration,\  
org.springframework.boot.autoconfigure.cloud.CloudAutoConfiguration,\  
org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration,\  
org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration,\  
org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration,\  
org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration,\  
org.springframework.boot.autoconfigure.data.solr.SolrRepositoriesAutoConfiguration,\  
org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration,\  
org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration,\  
org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration,\  
org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration,\  
org.springframework.boot.autoconfigure.hateoas.HypermediaAutoConfiguration,\  
org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration,\  
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration,\  
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\  
org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration,\  
org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration,\  
org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration,\  
org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration,\  
org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration,\  
org.springframework.boot.autoconfigure.jms.JndiConnectionFactoryAutoConfiguration,\  
org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration,\  
org.springframework.boot.autoconfigure.jms.hornetq.HornetQAutoConfiguration,\  
org.springframework.boot.autoconfigure.jta.JtaAutoConfiguration,\  
org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchAutoConfiguration,\  
org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchDataAutoConfiguration,\  
org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration,\  
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration,\  
org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration,\  
org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration,\  
org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration,\  
org.springframework.boot.autoconfigure.mobile.DeviceResolverAutoConfiguration,\  
org.springframework.boot.autoconfigure.mobile.DeviceDelegatingViewResolverAutoConfiguration,\  
org.springframework.boot.autoconfigure.mobile.SitePreferenceAutoConfiguration,\  
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration,\  
org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration,\  
org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration,\  
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration,\  
org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration,\  
org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration,\  
org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration,\  
org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration,\  
org.springframework.boot.autoconfigure.social.SocialWebAutoConfiguration,\  
org.springframework.boot.autoconfigure.social.FacebookAutoConfiguration,\  
org.springframework.boot.autoconfigure.social.LinkedInAutoConfiguration,\  
org.springframework.boot.autoconfigure.social.TwitterAutoConfiguration,\  
org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration,\  
org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration,\  
org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration,\  
org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration,\  
org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration,\  
org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration,\  
org.springframework.boot.autoconfigure.web.GzipFilterAutoConfiguration,\  
org.springframework.boot.autoconfigure.web.HttpEncodingAutoConfiguration,\  
org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration,\  
org.springframework.boot.autoconfigure.web.MultipartAutoConfiguration,\  
org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration,\  
org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration,\  
org.springframework.boot.autoconfigure.websocket.WebSocketAutoConfiguration  

(3)@ComponentScan:自动扫描当前包及子包下所有类。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值