springboot注解详解

代码标注注解

@RestController:标示当前类是一个控制类,是springboot提供的基于restfull风格开发,该注解是一个组合注解,
由@Controller和@ResponseBody构成,如果当前类标示RestController,则在返回数据是以json格式返回。

@RequestMapping:标示访问方法路径,主要是为了提供路由选择,当通过http访问时,会映射到指定的url.


启动入口类注解

@SpringBootApplication: Spring Boot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的Java应用程序的入口方法。@SpringBootApplication注解是Spring Boot的核心注解,它其实是一个组合注解。

该注解主要组合了以下注解:
1. @SpringBootConfiguration:这是Spring Boot项目的配置注解,这也是一个组合注解,在Spring Boot项目中推荐使用@ SpringBootConfiguration替代@Configuration,@Configuration注解该类,等价于XML中配置beans;用@Bean标注方法等价于XML中配置bean.
2. @EnableAutoConfiguration:启用自动配置,该注解会使Spring Boot根据项目中依赖的jar包自动配置项目的配置项:例如:我们添加了spring-boot-starter-web的依赖,项目中也就会引入SpringMVC的依赖,Spring Boot就会自动配置tomcat和SpringMVC

3. @ComponentScan:默认扫描@SpringBootApplication所在类的同级目录以及它的所有子目录。

@SpringBootApplication可以在初始化时排除一些配置。例如:需要排除Redis等配置,只需要在@SpringBootApplication中添加如@SpringBootApplication(exclude = RedisAutoConfiguration.class)即可。这样在启动时就不会注入redis.

引入外部资源注解

@ImportResource:导入外部自定义配置文件,例如自定义redis-context.xml配置文件,需要导入使用@ImportResource({"classpath:redis-context.xlm"})即可。

@ConfigurationProperties:加载属性配置,通过引入application.properties配置文件中的属性。例如通过配置文件获取durid数据库配置,@ConfigurationProperties(prefix = "spring.datasource.druid")


条件注解

Spring Boot的强大之处在于使用了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满足时才启用一些配置。 在Spring Boot的org.springframework.boot.autoconfigure.condition包中说明了使用,以下这些都是基于Condtional注解.

@ConditionalOnBean:当容器里有指定的Bean时初始化。
@ConditionalOnClass:当类路径下有指定的类时初始化。
@ConditionalOnExpression:基于Spel表达作为判断条件时。
@ConditionalOnJava:基于JVM版本作为判断条件。
@ConditionalOnJndi:在jndi存在的条件下查找指定的位置。
@ConditionalOnMissingBean:当容器里没有指定的Bean时。
@ConditionalOnMissingClass:当类路径下没有指定的类时。
@ConditionalOnNotWebApplication:当项目不是web项目时。
@ConditionalOnProperty:指定的属性是否有指定的值时.
@ConditionalOnResource:类路径是否有指定的值.
@ConditionalOnSingleCandidate:当指定的Bean在容器中只有一个或者有多个,但是指定首选的Bean.
@ConditionalOnWebApplication:当项目是web项目时.

猜你喜欢

转载自blog.csdn.net/seashouwang/article/details/80213760