SpringBoot常用注解

@SpringBootApplication

springboot的核心注解类,主要目的是开启自动配置,是一个组合注解,主要组合了以下注解

@SpringBootConfiguration

这是SpringBoot项目的配置注解,这也是一个组合注解,在SpringBoot项目中推荐使用@SpringBootConfiguration代替@Configuration

@EnableAutoConfiguration

启动自动配置,该注解会使SpringBoot根据项目中以来的jar包自动配置项目的配置项.

比如:我们天际了spring-boot-starter-web的依赖,项目中也就会引入SpringMVC的依赖,SpringBoot就会自动配置tomcat和SpringMVC

@ComponentScan

默认扫描@SpringBootApplication所在类的同级目录以及他的子目录

@SpringBootApplication(exclude={RedisAutoConfiguration.class})

关闭Redis自动配置,其他类似

@Configuration

表示这是一个spring的配置类

@Controller

表明这是一个springMVC的Controller控制器

main方法,在main中启动一个应用,即这个应用的入口

@Profiles

Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机

@Configuration      
@Profile("production")  
public class ProductionConfiguration {  
    // ...  
}  

@Component

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。一般公共的方法我会用上这个注解

@ControllerAdvice

全局处理异常

@ExceptionHandler(Exception.class)

用在方法上面表示遇到这个异常就执行以下方法。

/** 
 * 全局异常处理 
 */  
@ControllerAdvice  
class GlobalDefaultExceptionHandler {  
    public static final String DEFAULT_ERROR_VIEW = "error";  
  
    @ExceptionHandler({TypeMismatchException.class,NumberFormatException.class})  
    public ModelAndView formatErrorHandler(HttpServletRequest req, Exception e) throws Exception {  
        ModelAndView mav = new ModelAndView();  
        mav.addObject("error","参数类型错误");  
        mav.addObject("exception", e);  
        mav.addObject("url", RequestUtils.getCompleteRequestUrl(req));  
        mav.addObject("timestamp", new Date());  
        mav.setViewName(DEFAULT_ERROR_VIEW);  
        return mav;  
    }}

条件注解

@ConditionOnBean 当容器里有指定Bean的条件下

@ConditionOnClass 当类路径下有指定的类的条件下

@ConditionOnExpression 基于SpEL标段数作为判断条件

@ConditionOnJava 基于JVM版本作为判断条件

@ConditionOnJndi 在JNDI存在的条件下查找指定的位置

@ConditionOnMissingBean 当容器里没有指定Bean的情况下

@ConditionOnNotWebApplication 当类路径下没有指定的类的条件下

@ConditionOnProperty 指定的属性是否有指定的值

@ConditionOnResource 类路径是否有指定的值

@ConditionOnSingleCandidate 当指定Bean在容器中只有一个,或者虽然有多个,但是指定首选的Bean

@ConditionOnWebApplication 当前项目是在Web项目的条件下

原文地址:https://www.cnblogs.com/lishisan/p/11237490.html