Spring、SpringMVC和Spring Boot是Java开发中常用的框架,它们通过注解来简化配置和编码。以下是对这些框架中常用注解的详细介绍及使用方式:
Spring常用注解:
1.@component:
- 作用:通用的组件注解,标识一个类为Spring组件,会被自动扫描并创建Bean。
- 使用场景:泛指组件,当组件不好归类时,就用@Component注解。
2.@Controller:
- 作用:表示控制器层的注解,用于标识Web控制器组件。
- 使用场景:添加在类上,表示当前类是一个组件,建议添加在控制器类上。
3.@Service:
- 作用:表示服务层的注解,用于标识业务逻辑组件。
- 使用场景:添加在类上,表示当前类是一个组件,建议添加在处理业务逻辑的类上。
4.@Reponsitory:
- 作用:表示持久层的注解,用于标识数据访问组件。
- 使用场景:添加在类上,表示当前类是一个组件,建议添加在数据访问层的类上。
5.@Configuration:
- 作用:表示配置类的注解,用于定义配置类,替代XML配置文件。
- 使用场景:声明一个IOC容器,把所有标记了@Bean注解的类注入到IOC容器中去。
6.@Bean:
- 作用:使用在方法上,标注将该方法的返回值存储到Spring容器中。
- 使用场景:通常与@Configuration注解一起使用,用于将方法的返回值注册为Bean。
7.@Autowired:
- 作用:用于根据类型依赖注入,可以标注在属性上、方法上、构造方法上。
- 使用场景:让Spring框架自动装配Bean的依赖关系。
8.@Qualifier:
- 作用:结合@Autowired一起使用,用于根据名称进行依赖注入。
- 使用场景:当存在多个相同类型的Bean时,可以使用@Qualifier来指定注入的Bean名称。
9.@Scope:
- 作用:标注Bean的作用范围,如singleton(单例)、prototype(原型)等。
- 使用场景:添加在组件类上或@Bean方法上,用于配置Bean的作用范围。
10.@Lazy:
- 作用:将Spring管理此对象调用为“懒加载”。
- 使用场景:添加在组件类上或@Bean方法上,用于指定Bean的懒加载模式。
11.@ComponentScan:
- 作用:用于指定Spring在初始化容器时要扫描的包
12.@Import:
- 作用:@Import导入的类会被Spring加载到IOC容器中
- 使用场景:用于加载config配置类。
13.@Aspect、@Before、@After、@Around、@Pointcut
- 作用:用于AOP切面编程
SpringMVC常用注解:
1.@RequestMapping:
- 作用:用于映射请求路径,可以定义在类上和方法上。
- 使用场景:一般用于类上,则表示类中的所有方法都是以该地址作为父地址;用于方法上,则用于映射具体的
2.@GetMapping、@PostMapping、@PutMapping、@DeleteMapping:
- 作用:分别用于处理GET、POST、PUT、DELETE请求,简化@RequestMapping的使用。
- 使用场景:添加在方法上,用于配置特定HTTP方法的请求路径。
3.@pathVariable:
- 作用:用于获取URL中的路径变量,将路径中的值绑定到方法参数上。
- 使用场景:添加在处理请求的方法的参数上,用于接收URL中的占位符参数。
4.@RequestParam:
- 作用:用于获取请求参数的值,将请求参数绑定到方法参数上。
- 使用场景:添加在处理请求的方法的非封装类型的参数上,用于指定请求参数名称、限制必须提交、配置默认值等。指定请求参数名来接收集合类型的参数。
5.@RequestBody:
- 作用:用于接收http请求的json数据,将json转换为java对象。
- 使用场景:添加在处理请求的方法的参数(实体类)上,用于要求客户端使用JSON格式来提交请求参数。
6.@ResponseBody:
- 作用:用于将方法的返回值直接写入HTTP响应体中,通常用于返回JSON或XML格式的数据。
- 使用场景:添加在方法上或控制器类上,表示此方法或此控制器中所有方法在响应时,都是响应正文的。
7.@RestController:
- 作用:是@Controller和@ResponseBody的组合注解,表示此类是一个控制器类,并且类中所有方法在响应时,都是响应正文的。简化注解。
- 使用场景:添加
8.@RequestHeader
作用:获取请求头中的数据绑定到控制器(Controller)方法的参数上。
使用场景:许多 API 需要客户端在请求中包含认证信息,如 API 密钥、JWT 令牌等,这些信息通常放在请求头中。
SpringBoot常用注解:
1.@SpringBootApplication:
- 作用:这是Spring Boot的核心注解,用于标识一个Spring Boot应用的主类。它是一个组合注解,包含了@Configuration、@EnableAutoConfiguration、@ComponentScan三个注解的功能。
- 解释:
- @Configuration:表明该类是一个配置类,可以定义Bean。
- @EnableAutoConfiguration:启用Spring Boot的自动配置机制,根据添加的jar依赖自动配置Spring应用。
- @ComponentScan:告诉Spring Boot扫描当前包及其子包中的类,将标注了@Component、@Service、@Repository、@Controller等注解的类注册为Bean。