SpringCloud入门随感六

SpringCloud初学随感 六

SpringBoot核心注解

@SpringBootApplication:该注解在哪个类上面,表示哪个类就是SpringBoot启动类,既然@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}
)}
)

@SpringBootApplication具备了@SpringBootConfiguration
与@EnableAutoConfiguration注解的能力,首先看@SpringBootConfiguration注解:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
    @AliasFor(
        annotation = Configuration.class
    )
    boolean proxyBeanMethods() default true;
}

该注解被@Configuration注解,说明@SpringBootConfiguration具备了@Configuration的能力的。
@SpringBootConfiguration通过bean对象获取配置信息,其通过对象获取配置信息的能力时有@Configuration注解的存在
@Configuration:通过对bean对象的操作来代替Spring中的xml文件,哪个类上加了@Configuration注解,SpringBoot在启动的时候就会对哪个类进行执行。
@EnableAutoConfiguration源码:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
    String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";

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

    String[] excludeName() default {};
}

@AutoConfigurationPackage:通过项目中导入的jar包,根据项目jar包创建项目启动环境。完成初始化环境的配置
@ComponentScan:完成Spring的组件扫描,替代之前xml中的组件扫描(context.component.scan package=’…’)
真因为有它的存在就不需要有配置文件了
@RestController该注解是由@Controller与@ResponseBody组成的


@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    @AliasFor(
        annotation = Controller.class
    )
    String value() default "";
}

@ResponseBody表示这个controller类中的所有方法都是以json的数据格式返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值