下面是 Spring Boot 常用注解经典干货的完整攻略:
1. 常用注解
@SpringBootApplication
@SpringBootApplication
组合注解充分发挥了 @Configuration
、@EnableAutoConfiguration
、@ComponentScan
的作用。其中,@EnableAutoConfiguration
让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如添加 Tomcat、Jackson 等。
示例:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@RestController
@RestController
是 Spring4 之后新加入的注解,原来返回 json 需要 @ResponseBody
和 @Controller
两个注解组合。即@RestController = @ResponseBody + @Controller。
示例:
@RestController
public class HelloController {
@RequestMapping("/hello")
public String sayHello() {
return "Hello World!";
}
}
@Value
@Value
可以用来读取配置文件中的内容,支持 SpEL 表达式。
示例:
# application.yml
person:
name: 张三
age: 18
@Component
public class Person {
@Value("${person.name}")
private String name;
@Value("#{${person.age} + 1}")
private int age;
// getters and setters
}
@Autowired
@Autowired
可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
示例:
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
// other methods
}
@RequestMapping
@RequestMapping
提供路由信息,即请求 URL 与处理方法之间的映射。
示例:
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping("/hello")
public String sayHello() {
return "Hello World!";
}
}
@Transactional
@Transactional
注解应该只被应用到 public 方法上,这样注解才能被 Spring 所识别。
示例:
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Transactional
public void saveUser(User user) {
userRepository.save(user);
}
}
@Async
@Async
表示异步执行。如果一个方法上面标记了 @Async
,那么这个方法就会异步执行。
示例:
@Service
public class AsyncService {
@Async
public void asyncMethod() {
// 异步执行的方法
}
}
@Scheduled
@Scheduled
可以实现定时任务。该注解可以标注一个方法,并使用 cron 表达式来配置定时任务的执行时间。
示例:
@Service
public class ScheduledService {
@Scheduled(cron = "0/5 * * * * ?")
public void scheduledMethod() {
// 定时任务要执行的逻辑
}
}
2. 总结
以上是 Spring Boot 常用注解的经典干货,包括 @SpringBootApplication
、@RestController
、@Value
、@Autowired
、@RequestMapping
、@Transactional
、@Async
、@Scheduled
等注解的用法。这些注解在 Spring Boot 程序的开发中非常常用,掌握了这些注解,可以为编写高效优雅的 Spring Boot 代码提供很大的便利。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot常用注解(经典干货) - Python技术站