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)
上一篇:
多线程四大经典案例
下一篇:
计算机网络:OSI七层网络模型及相关协议