以下是基于我用到的Spring框架所遇到的注解做的总结:
1 @SpringBootApplication:用来标记主类,启用自动配置和组件扫描。
2 @Component:通用组件,自动扫描注入 Spring 容器。
3 @Service:用来标记业务层的,业务逻辑层组件。
4 @Repository:标记Dao层,数据访问层组件。
5 @Controller:用来标记控制层,接收前端发送的请求,对请求进行处理
6 @ResponseBody:将方法返回值直接响应给浏览器,如果返回值类型时实体对象/集合,将会转成JSON格式后响应给浏览器
7 @RestController:@Controller注解和@ResponseBody的结合
注:三层架构中使用@RestController``@Service``@Repository分别标记控制层、业务逻辑层、和数据访问层
Controller:控制层。接收前端发送的请求,对请求进行处理,并响应数据。
Service:业务逻辑层。处理具体的业务逻辑。
Dao:数据访问层(Data Access Object),也称为持久层。负责数据访问操作,包括数据的增、删、改、查。
8 @Mapper 表示是mybatis中的Mapper接口,程序运行时,框架会自动生成接口的实现类对象(代理对象),并给交Spring的IOC容器管理
9 @ComponentScan:指定 Spring 要扫描的包路径。
10 @MapperScan:用来扫描mapper包下的mapper注解,配合着basePackages来指明mapper路径
11 @Autowired:自动装配 Bean。
12 @Qualifier:配合 @Autowired 解决多个同类型 Bean 冲突。
13 @Primary:标记首选 Bean。
注 @Qualifier``@Primary``@Resource这三个注解是用来解决多个同类型bean冲突的,@Qualifier是配合 @Autowired一起使用,@Primary标记在哪个实现类上,就创造那个实现类对象,@Resource是jdk提供的注解,他的属性值是哪个实现类对象就是哪个。例如:
@Qualifier("userServiceImpl")
@Autowired
private UserService userService;
@Primary
@Service
public class UserServiceImpl implements UserService {
}
@Resource(name = "userServiceImpl")** private UserService userService;
14RequestMapping:映射请求 URL 到类或方法。
15@GetMapping:映射 GET 请求。
16@DeleteMapping:映射 DELETE 请求。
17@PostMapping:映射 POST 请求。
18@PutMapping :映射 PUT 请求。
19@RequestBody:将请求体转为对象
20@RequestParam绑定请求参数
21@PathVariable:获取 URL 中的变量。
22@Select MyBatis 查询注解。
23 @Update:MyBatis 更新注解。
24@Delete:MyBatis 删除注解
25@Insert:MyBatis 插入注解。