@SpringBootApplication

发布于:2025-03-16 ⋅ 阅读:(16) ⋅ 点赞:(0)

@SpringBootApplication拓展

一. @SpringBootConfiguration注解

是SpringBoot的注解, 标识一个类为配置类, 与@Configration功能一致
run方法初始化了@SpringBootConfiguration注解
注解源码

@Target(ElementType.TYPE)//类型
@Retention(RetentionPolicy.RUNTIME)//生命周期
@Documented
@Configuration
public @interface SpringBootConfiguration {
   @AliasFor(annotation = Configuration.class)
   boolean proxyBeanMethods() default true;
}

指定代理@bean
代码

@SpringBootConfiguration
public class MyConfig {
 
    @Bean
    public MyBean getMyBean() {
        return new MyBean("Hello! Spring Boot");
    }
}

@Configration

是spring的注解, 用于标记一个类为配置类,表示该类包含Bean的定义。
代码

@Configuration
public class MyConfig {
    @Bean
    public MyBean mybean(){
        return new MyBean (1,"mybean");
    }
}

二. @ComponentScan

@ComponentScan告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器。
代码

@Configuration
@ComponentScan(value = "com.bite.principle.config")
public class MyConfig {
    @Bean
    public MyBean mybean(){
        return new mybean("mybean",1);
    }

三. @EnableAutoConfigration

根据项目依赖和配置,自动配置 Spring Boot 应用程序中的 Bean。

@AutoConfigurationPackage

添加该注解的类所在的package 作为 自动配置package 进行管理。

注解源码

@Target({ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Inherited

@Import({Registrar.class}) // 导入Registrar中注册的组件

public @interface AutoConfigurationPackage {

}

从上述源码可以看出,@AutoConfigurationPackage注解的功能是由 @Import 注解实现的,它是spring框架的底层注解,它的作用就是给容器中导入某个组件类.

@Import

@Import通过快速导入的方式实现把实例加入spring的IOC容器中
@Import注解可以用于导入第三方包 ,当然@Bean注解也可以,但是@Import注解快速导入的方式更加便捷

@Import(importDemo.class)
public class TestDemo {

}