Spring框架中常用的注解有:
- @RestController- @RequestMapping- @GetMapping- @PostMapping- @PutMapping- @DeleteMapping- @Controller- @RequestParam- @PathVariable- @ResponseBody- @ModelAttribute- @SessionAttributes- @Autowired- @Qualifier- @Component- @Service- @Repository- @Transactional
- RestController注解:
@RestController注解是Spring MVC中的一个特殊注解,它结合了@Controller和@ResponseBody注解的功能。它用于标识一个类是一个控制器,并且该类中的方法返回的结果直接作为HTTP响应的内容,而不是视图。
示例代码:
@RestController
public class UserController {// Controller methods
}
- RequestMapping注解:
@RequestMapping注解用于将HTTP请求映射到控制器的方法上。它可以用于类级别和方法级别,用于指定URL路径和HTTP请求方法。
示例代码:
@Controller
@RequestMapping("/users")
public class UserController {@RequestMapping(value = "/{id}", method = RequestMethod.GET)public User getUser(@PathVariable int id) {// Method implementation}
}
- GetMapping注解:
@GetMapping注解是@RequestMapping注解的缩写形式,用于将HTTP GET请求映射到控制器的方法上。
示例代码:
@Controller
@RequestMapping("/users")
public class UserController {@GetMapping("/{id}")public User getUser(@PathVariable int id) {// Method implementation}
}
- PostMapping注解:
@PostMapping注解是@RequestMapping注解的缩写形式,用于将HTTP POST请求映射到控制器的方法上。
示例代码:
@Controller
@RequestMapping("/users")
public class UserController {@PostMapping("/")public User createUser(@RequestBody User user) {// Method implementation}
}
- PutMapping注解:
@PutMapping注解是@RequestMapping注解的缩写形式,用于将HTTP PUT请求映射到控制器的方法上。
示例代码:
@Controller
@RequestMapping("/users")
public class UserController {@PutMapping("/{id}")public User updateUser(@PathVariable int id, @RequestBody User user) {// Method implementation}
}
- DeleteMapping注解:
@DeleteMapping注解是@RequestMapping注解的缩写形式,用于将HTTP DELETE请求映射到控制器的方法上。
示例代码:
@Controller
@RequestMapping("/users")
public class UserController {@DeleteMapping("/{id}")public void deleteUser(@PathVariable int id) {// Method implementation}
}
- Controller注解:
@Controller注解用于标识一个类是一个控制器,它处理HTTP请求并返回视图。
示例代码:
@Controller
public class HomeController {// Controller methods
}
- RequestParam注解:
@RequestParam注解用于从HTTP请求中获取参数的值,并将其绑定到方法的参数上。
示例代码:
@Controller
@RequestMapping("/users")
public class UserController {@GetMapping("/")public List<User> getUsers(@RequestParam("page") int page, @RequestParam("size") int size) {// Method implementation}
}
- PathVariable注解:
@PathVariable注解用于从URL路径中获取参数的值,并将其绑定到方法的参数上。
示例代码:
@Controller
@RequestMapping("/users")
public class UserController {@GetMapping("/{id}")public User getUser(@PathVariable int id) {// Method implementation}
}
- ResponseBody注解:
@ResponseBody注解用于将方法的返回值直接作为HTTP响应的内容,而不是视图。
示例代码:
@Controller
@RequestMapping("/users")
public class UserController {@GetMapping("/{id}")@ResponseBodypublic User getUser(@PathVariable int id) {// Method implementation}
}
- ModelAttribute注解:
@ModelAttribute注解用于将方法的返回值添加到模型中,以便在视图中使用。
示例代码:
@Controller
@RequestMapping("/users")
public class UserController {@ModelAttribute("countries")public List<String> getCountries() {// Method implementation}
}
- SessionAttributes注解:
@SessionAttributes注解用于指定控制器类中的模型属性应该存储在会话中。
示例代码:
@Controller
@RequestMapping("/users")
@SessionAttributes("user")
public class UserController {// Controller methods
}
- Autowired注解:
@Autowired注解用于自动装配依赖关系,它可以用于构造函数、属性和方法。
示例代码:
@Service
public class UserService {private UserRepository userRepository;@Autowiredpublic UserService(UserRepository userRepository) {this.userRepository = userRepository;}
}
- Qualifier注解:
@Qualifier注解用于指定自动装配的候选者的限定符,当有多个候选者时使用。
示例代码:
@Service
public class UserService {private UserRepository userRepository;@Autowiredpublic UserService(@Qualifier("userRepositoryImpl") UserRepository userRepository) {this.userRepository = userRepository;}
}
- Component注解:
@Component注解是一个通用的Spring注解,用于标识一个类是一个组件,它会被自动扫描并注册为Spring的Bean。
示例代码:
@Component
public class UserRepositoryImpl implements UserRepository {// Repository methods
}
- Service注解:
@Service注解用于标识一个类是一个服务类,它通常用于业务逻辑的处理。
示例代码:
@Service
public class UserService {// Service methods
}
- Repository注解:
@Repository注解用于标识一个类是一个数据访问对象(DAO),它通常用于数据库操作。
示例代码:
@Repository
public class UserRepositoryImpl implements UserRepository {// Repository methods
}
- Transactional注解:
@Transactional注解用于标识一个方法或类应该在事务中执行,它可以应用于方法级别和类级别。
示例代码:
@Service
public class UserService {@Transactionalpublic void createUser(User user) {// Method implementation}
}