@RestController
@RestController注解用于标记一个类,指示它是一个控制器,它使用Spring MVC框架中的@RestController注解,该注解结合了@Controller和@ResponseBody注解,因此可以在响应请求时直接返回JSON数据。
@RestController
public class MyRestController {
@GetMapping("/hello")
public String hello() {
return "Hello World";
}
}
@RequestMapping
@RequestMapping注解用于映射HTTP请求到处理程序方法。该注解可以用于类级别和方法级别。
@RestController
@RequestMapping("/api")
public class MyRestController {
@GetMapping("/hello")
public String hello() {
return "Hello World";
}
}
@GetMapping
@GetMapping注解用于映射HTTP GET请求到处理程序方法。
@RestController
@RequestMapping("/api")
public class MyRestController {
@GetMapping("/hello")
public String hello() {
return "Hello World";
}
}
@PostMapping
@PostMapping注解用于映射HTTP POST请求到处理程序方法。
@RestController
@RequestMapping("/api")
public class MyRestController {
@PostMapping("/create")
public String create() {
return "Create Success";
}
}
@PutMapping
@PutMapping注解用于映射HTTP PUT请求到处理程序方法。
@RestController
@RequestMapping("/api")
public class MyRestController {
@PutMapping("/update")
public String update() {
return "Update Success";
}
}
@DeleteMapping
@DeleteMapping注解用于映射HTTP DELETE请求到处理程序方法。
@RestController
@RequestMapping("/api")
public class MyRestController {
@DeleteMapping("/delete")
public String delete() {
return "Delete Success";
}
}
@PathVariable
@PathVariable注解用于将URL路径变量绑定到方法参数。
@RestController
@RequestMapping("/api")
public class MyRestController {
@GetMapping("/users/{id}")
public String getUserById(@PathVariable Long id) {
return "User ID: " + id;
}
}
@RequestParam
@RequestParam注解用于将HTTP请求参数绑定到方法参数。
@RestController
@RequestMapping("/api")
public class MyRestController {
@GetMapping("/users")
public String getUserById(@RequestParam Long id) {
return "User ID: " + id;
}
}
@Autowired
@Autowired注解用于将依赖项自动装配到Spring Bean中。
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
}
@Component
@Component注解用于标记一个类,表明它是Spring中的一个组件。
@Component
public class MyComponent {
// Component Implementation
}
@Service
@Service注解用于标记一个类,表明它是Spring中的一个服务,一般标记在业务层。
@Service
public class MyService {
// Service Implementation
}
@Repository
@Repository注解用于标记一个类,表明它是Spring中的一个数据访问对象,一般标注在数据访问层(dao层、Mapper层)。
@Repository
public class UserRepositoryImpl implements UserRepository {
// Repository Implementation
}
@Configuration
@Configuration注解用于标记一个类,指示它包含Spring应用程序上下文中的Bean定义.
@Configuration
public class MyConfiguration {
// Configuration Implementation
}
@Value
@Value注解用于将Spring Boot配置文件中的属性值注入到字段或方法参数中。
@Service
public class MyService {
@Value("${app.title}")
private String appTitle;
}
@Conditional
@Conditional注解用于根据条件自动配置Spring Bean。
@Configuration
public class MyConfiguration {
@Bean
@Conditional(OnProductionCondition.class)
public MyService myService() {
return new MyService();
}
}
@Scheduled
@Scheduled注解用于将方法定时执行。
@Service
public class MyService {
@Scheduled(fixedRate = 5000)
public void performTask() {
// Task Implementation
}
}
@ExceptionHandler
@ExceptionHandler注解用于处理Spring MVC控制器中的异常。
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception e) {
return new ResponseEntity<>("Error: " + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@CrossOrigin
@CrossOrigin注解用于允许跨域请求。
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "http://localhost:3000")
public class MyRestController {
@GetMapping("/hello")
public String hello() {
return "Hello World";
}
}
@Transactional
@Transactional注解用于将方法包装在事务中。
@Service
public class MyService {
@Autowired
private UserRepository userRepository;
@Transactional
public void createNewUser(User user) {
userRepository.save(user);
}
}
@Validated
@Validated注解用于对请求参数进行验证。
@RestController
@RequestMapping("/api")
public class MyRestController {
@PostMapping("/users")
public void createUser(@RequestBody @Validated User user) {
// User Validation Passed
}
}