1. @SpringBootApplication
@SpringBootApplication
是一个组合注解,包括了以下三个注解:
@SpringBootConfiguration
:标识当前类是Spring Boot的配置类,相当于传统的XML配置文件。@EnableAutoConfiguration
:开启Spring Boot的自动配置功能,可以自动根据依赖的jar包来配置项目。@ComponentScan
:扫描指定的包及其子包下的所有组件。-
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
2. @RestController
-
@RestController
是一个组合注解,相当于@Controller
和@ResponseBody
的结合体,用于定义RESTful风格的控制器。用法示例:
@RestController public class UserController { @GetMapping("/users/{id}") public User getUser(@PathVariable Long id) { // 查询用户逻辑 return user; } @PostMapping("/users") public User addUser(@RequestBody User user) { // 添加用户逻辑 return user; } @PutMapping("/users/{id}") public User updateUser(@PathVariable Long id, @RequestBody User user) { // 更新用户逻辑 return user; } @DeleteMapping("/users/{id}") public void deleteUser(@PathVariable Long id) { // 删除用户逻辑 } }
3. @RequestMapping
@RequestMapping
是一个用于处理请求的注解,可以用于类或方法级别。用法示例:
SpringBoot主要注解及其用法示例
1. @SpringBootApplication
@SpringBootApplication
是一个组合注解,包括了以下三个注解:
@SpringBootConfiguration
:标识当前类是Spring Boot的配置类,相当于传统的XML配置文件。@EnableAutoConfiguration
:开启Spring Boot的自动配置功能,可以自动根据依赖的jar包来配置项目。@ComponentScan
:扫描指定的包及其子包下的所有组件。
用法示例:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2. @RestController
@RestController
是一个组合注解,相当于 @Controller
和 @ResponseBody
的结合体,用于定义RESTful风格的控制器。
用法示例:
@RestController
public class UserController {
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {
// 查询用户逻辑
return user;
}
@PostMapping("/users")
public User addUser(@RequestBody User user) {
// 添加用户逻辑
return user;
}
@PutMapping("/users/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
// 更新用户逻辑
return user;
}
@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable Long id) {
// 删除用户逻辑
}
}
3. @RequestMapping
@RequestMapping
是一个用于处理请求的注解,可以用于类或方法级别。
用法示例:
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
// 查询用户逻辑
return user;
}
@PostMapping
public User addUser(@RequestBody User user) {
// 添加用户逻辑
return user;
}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
// 更新用户逻辑
return user;
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
// 删除用户逻辑
}
}
4. @GetMapping/@PostMapping/@PutMapping/@DeleteMapping
这些注解分别对应HTTP的GET/POST/PUT/DELETE请求方法,用于定义RESTful API的请求方法。
用法示例:
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
// 查询用户逻辑
return user;
}
@PostMapping
public User addUser(@RequestBody User user) {
// 添加用户逻辑
return user;
}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
// 更新用户逻辑
return user;
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
// 删除用户逻辑
}
}
5. @PathVariable
@PathVariable
是一个用于将URL中的占位符参数绑定到方法参数的注解。
用法示例:
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
// 查询用户逻辑
return user;
}
}
6. @RequestBody
@RequestBody
是一个用于将HTTP请求的JSON或XML格式的数据绑定到方法参数的注解。
用法示例:
@RestController
@RequestMapping("/users")
public class UserController {
@PostMapping
public User addUser(@RequestBody User user) {
// 添加用户逻辑
return user;
}
}
7. @Autowired
@Autowired
是一个用于自动装配Bean的注解,可以用于字段、方法或构造函数。
用法示例:
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User getUser(Long id) {
return userRepository.findById(id).orElse(null);
}
}
8. @Repository
@Repository
是一个用于标识数据访问层的注解,通常与 @Autowired
配合使用。
用法示例:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
9. @Transactional
@Transactional
是一个用于声明事务的注解。
作用:标识当前方法需要在事务管理下运行,同时可以指定事务的传播方式、隔离级别、回滚条件等。
示例:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Transactional
@Override
public void addUser(User user) {
userRepository.save(user);
}
// ...
}
10. @EnableCaching
@EnableCaching
是一个用于启用缓存功能的注解。
作用:开启Spring的缓存功能,同时可以指定缓存管理器的类型、缓存的名称等。
示例:
@SpringBootApplication
@EnableCaching
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Cacheable(value = "users", key = "#id")
@Override
public User getUser(Long id) {
return userRepository.findById(id).orElse(null);
}
// ...
}
以上是SpringBoot主要注解及其用法示例的详细介绍。通过合理地使用这些注解,可以更加高效地开发SpringBoot应用程序