• 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项目的条件下

  • 相关阅读:
    【服务后端】Django 返回的QuerySet序列化
    【服务后端】Django的多表数据查询
    【微信开发】2、全局Token获取
    【微信开发】1、服务器响应,与微信服务器握手
    【服务后端】Python序列化对象为Json方法
    【服务后端】Django对比查询结果中的id时报错'dict' object has no attribute 'id'
    【网页前端】WeX5架构下,WinDialog子窗口1传递参数给主窗口关闭,再弹出子窗口2失败
    【系统运维】CentOS系统MySql,Tomcat和Django自启动
    【网络开发】WeX5的Ajax和Django服务器json接口对接跨域问题解决
    21.1
  • 原文地址:https://www.cnblogs.com/lishisan/p/11237490.html
Copyright © 2020-2023  润新知