SpringBoot 学习(一)----SpringBoot 核心 之 启动类和核心注解

@SpringBootApplication

Spring Boot 的项目一般都会有注解 *Application标注的入口类,入口类中会有一个main方法,main方法是一个彼岸准的Java应用程序的入口方法,可以直接启动。

@SpringBootApplication注解是Spring Boot的核心注解,用此注解标注的入口类是应用的启动类,通常会在启动类的main方法中通过 SpringApplication.run(App.calss,args) 来启动Spring Boot应用项目。

@SpringBootApplication其实是一个组合注解,源代码如下:

程序清单:org/springframework/boot/autoconfigure/SpringBootApplication.java

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

    Class<?>[] exclude() default {};

    String[] excludeName() default {};

    @AliasFor(annotation = ComponentScan.class, attribute = "basePackages")
    String[] scanBasePackages() default {};


    @AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses")
    Class<?>[] scanBasePackageClasses() default {};

}

@SpringBootApplication注解主要组合了以下注解:

(1)、@SpringBootConfiguration:这是 Spring Boot 项目的配置注解,也是一个组合注解,源码如下:

程序清单:org/springframework/boot/SpringBootConfiguration.java

@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Configuration public @interface SpringBootConfiguration { }

Spring Boot项目中推荐使用 @SpringBootConfiguration 注解来代替 @Configuration 注解。

 

(2)、@EnableAutoConfiguration:启动自动配置;该注解会让 Spring Boot 根据当前项目所依赖的jar包自动配置项目的相关配置项。

例如:当在 Spring Boot 项目的 pom.xml 文件中配置了如下 spring-boot-starter-web 依赖。

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

项目就会自动添加Tomcat和SpringMVC的依赖,同时SpringBoot会对Tomcat和SpringMVC进行配置项的自动配置,打开pom.xml,选择Dependency Hierarchy 页面查看,如下图所示:

上图显示的是当前项目中SpringBoot的所有依赖,如果在项目中添加spring-boot-starter-data-jpa依赖,Spring Boot就会自动进行 spring-boot-starter-data-jpa 依赖的相关配置。(可自行添加依赖,进行观察)

(3)、@ComponentScan:扫描配置,Sping Boot 默认会扫描 @SpringBootApplicaiton 所在类的同级包以及它的子包,所以建议将 @SpringBootApplication 修饰的入口类放置在项目包下(Group Id + Artifact Id),这样做的好处是,可保证Spring Boot 项目自动扫描到项目所有的包。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值