 
									一介闲人
 
							一介闲人
 
				@SpringBootApplication
这是SpringBoot项目最常用的注解,实际上是三个注解的组合:
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        // 启动SpringBoot应用
        SpringApplication.run(MyApplication.class, args);
    }
}
@Configuration
标记一个类作为Bean定义的配置类。可以在类中通过@Bean注解来手动注册Bean。
@Configuration
public class AppConfig {
    @Bean
    public UserService userService() {
        return new UserServiceImpl();
    }
}
@Autowired
最常用的依赖注入注解,可以自动装配Bean。
@Service
public class UserServiceImpl implements UserService {
    // 自动注入UserRepository
    @Autowired
    private UserRepository userRepository;
}
@Resource
Java标准注解,默认按名称注入,可以替代@Autowired。
public class UserController {
    @Resource(name = "userServiceImpl")
    private UserService userService;
}
@Qualifier
当存在多个同类型Bean时,可以通过@Qualifier指定具体要注入的Bean。
@Service
public class UserServiceImpl {
    @Autowired
    @Qualifier("primaryUserRepository")
    private UserRepository userRepository;
}
@RestController
组合了@Controller和@ResponseBody,用于构建RESTful风格的API。
@RestController
@RequestMapping("/users")
public class UserController {
    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }
}
常用请求映射注解
@RestController
@RequestMapping("/products")
public class ProductController {
    @GetMapping
    public List<Product> listProducts() {
        return productService.getAllProducts();
    }
    @PostMapping
    public Product createProduct(@RequestBody Product product) {
        return productService.saveProduct(product);
    }
}
@RequestParam
获取HTTP请求参数
@GetMapping("/search")
public List<User> searchUsers(@RequestParam String keyword) {
    return userService.searchUsersByKeyword(keyword);
}
@Valid
开启数据验证,通常与@RequestBody一起使用。
public class User {
    @NotBlank(message = "用户名不能为空")
    private String username;
    @Email(message = "邮箱格式不正确")
    private String email;
}
@PostMapping
public Result createUser(@Valid @RequestBody User user) {
    // 自动校验参数
    userService.createUser(user);
}
@Transactional
声明式事务管理,简化数据库事务处理。
@Service
public class OrderServiceImpl {
    @Autowired
    private OrderRepository orderRepository;
    @Transactional(rollbackFor = Exception.class)
    public void createOrder(Order order) {
        // 自动管理事务,出现异常会回滚
        orderRepository.save(order);
        // 其他业务逻辑
    }
}
@ConditionalOnProperty
根据配置项动态决定是否加载Bean。
@Configuration
public class CacheConfig {
    @Bean
    @ConditionalOnProperty(
        name = "cache.enabled", 
        havingValue = "true"
    )
    public CacheManager cacheManager() {
        return new ConcurrentMapCacheManager();
    }
}
@ControllerAdvice
全局异常处理。
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleException(Exception e) {
        return ResponseEntity.status(500).body(e.getMessage());
    }
}
 
									
评论