Spring boot 初解

@SpringBootApplication则是一个组合注解java

看它的源码:web

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

}

能够看到它组合了@SpringBootConfiguration@EnableAutoConfiguration以及@ComponentScan,咱们在开发的过程当中若是不使用@SpringBootApplication,则能够组合使用这三个注解。spring

这三个注解中,@SpringBootConfiguration实际上就是@Configuration注解,代表这个类是一个配置类,安全

@EnableAutoConfiguration则表示让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置,服务器

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

例如,若是你有个类用@Controller注解标识了,那么,若是不加上@ComponentScan,自动扫描该controller,那么该Controller就不会被spring扫描到,更不会装入spring容器中,所以你配置的这个Controller也没有意义。框架

类上的注解@Configuration 是最新的用注解配置spring,也就是说这是个配置文件,和原来xml配置是等效的,只不过如今用java代码进行配置了 加上一个@Configuration注解就好了,这样基于注解的配置,可读性也大大增高了。spring-boot

惟一要注意的是若是咱们使用了@SpringBootApplication注解的话,系统会去入口类的同级包以及下级包中去扫描实体类微服务

spring-boot-starter-actuator依赖会引入一组基本的Spring项目,从而实现应用的快速配置和即时可用。关于这种依赖,值得强调的一点就是当开发Web应用,尤为是RESTful Web服务的时候,若是包含了spring-boot-starter-web依赖,它就会为你提供启动嵌入式Tomcat容器的自动化配置,而且提供对微服务应用有价值的端点信息,如服务器信息、应用指标(metrics)以及环境详情。除此以外,若是引入spring-boot-starter-security模块的话,actuator会自动配置Spring Security,从而为应用提供基本的认证以及其余高级的安全特性。它还会为应用结构引入一个内部的审计框架,这个框架能够用来生成报告或其余的用途,好比开发认证失败的锁定策略。spa

spring boot的配置可使用Java属性文件来进行定义,这个文件名为application.properties而且位于应用的classpath根目录下。不过,一种更好的方式是使用 YAML配置,它提供告终构化以及嵌套的配置

相关文章
相关标签/搜索