快捷搜索:

Spring 常见注解

Spring 常见注解

1.常见注解

持续更新…

    1.Bean的分类: @Service: 注解在类上,表示这是一个业务层bean @Controller:注解在类上,表示这是一个控制层bean @RestController @RestController 是一个结合了 @ResponseBody 和 @Controller 的注解 @Repository: 注解在类上,表示这是一个数据访问层bean @Component : 注解在类上,表示通用bean相当于通用的注解,当不知道一些类归到哪个层时使用,但是不建议 2.Bean注入: @Autowired:按类型装配 @Resource: 按名称装配 3.Controller常用: @RequestMapping 用来定义访问的URL,你可以为整个类定义一个 @RequestParam在SpringMVC后台控制层获取参数,类似一种是request.getParameter(“name”) ,例如:@RequestParam(“id”) 注解 @PathVariable用于方法中的参数,表示方法参数绑定到地址URL的模板 @RequestHeader 获取请求的头部信息 @ResponseBody 该注解用于将Controller的方法返回的对象 @ModelAttribute 可用于注解和方法参数中,可以把这个@ModelAttribute特性,应用在BaseController当中 @SessionAttributes 即将值放到session作用域中,写在class上面。 @CookieValue 获取cookie信息 4.配置类常用: @Configuration:注解在类上,表示这是一个IOC容器,相当于spring的配置文件,java配置的方式。 IOC容器的配置类 @Bean: 注解在方法上,声明当前方法返回一个Bean @PostConstruct:注解在方法上,构造函数执行后执行。 @PreDestroy: 注解在方法上,在Bean销毁前执行。 @ComponentScan:注解在类上,扫描标注了@Controller等注解的类,注册为bean @Lazy(true):  延迟初始化 @Scope:注解在类上,描述spring容器如何创建Bean实例。 @Value:注解在变量上,从配置文件中读取。 @Profile:注解在方法 类上 在不同情况下选择实例化不同的Bean 特定环境下生效 @EnableAutoConfiguration 这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring @Profiles Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。 @ControllerAdvice 包含@Component 可以被扫描到。统一处理异常。 @ExceptionHandler 用在方法上面表示遇到这个异常就执行以下方法。 @SpringBootApplication:@SpringBootApplication=@ComponentScan+@Configuration+@EnableAutoConfiguration:约定优于配置 5.Servlet常用: @WebServlet(name=“Servlet3FirstDemo”,value="/Servlet3FirstDemo") 6.Filter常用: @WebFilter将一个实现了javax.servlet.Filte接口的类定义为过滤器

2.自定义注解

2.1 定义Annotation 使用 @interface关键字自定义annotation

public @interface MyAnnotation {
          
         
     String name();  有一个name的成员变量
     int age() default 20; 缺省值
}

2.2 提取Annotation信息

<A extends Annotation> A getAnnotation(Class<A> annotationClass);
返回该元素上存在的、指定类型的注解,如果不存在,返回null;

<A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass);
java8新增,获取直接修饰该元素,且指定类型的Annotation,如果不存在,返回null

Annotation[] getAnnotations();
返回该元素上存在的所有注解

Annotation[] getDeclaredAnnotations();
返回元素上存在的所有注解

boolean isAnnotationPresent(Class<? extends Annotation> annotationClass);
是否存在指定类型的注解,存在true,不存在false

<A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass);
<A extends Annotation> A[] getDeclaredAnnotatinosByType(Class<A> annotationClass)
经验分享 程序员 微信小程序 职场和发展