侧边栏壁纸

Spring与SpringMVC注解总览

2023年10月17日 489阅读 0评论 0点赞

1. Spring Core 注解:

@Component

  • 作用:基本注解,标识一个受Spring管理的组件。
  • 示例

    @Component
    public class ExampleComponent {}

@Autowired

  • 作用:自动装配bean。可以对类的字段、构造函数和方法使用。
  • 示例

    public class CarService {
        @Autowired
        private CarRepository carRepository;
    }

@Qualifier

  • 作用:当有多个同类型的Bean时,指定需要注入哪一个。
  • 示例

    @Autowired
    @Qualifier("specialCarRepository")
    private CarRepository carRepository;

@Value

  • 作用:注入属性值。
  • 示例

    @Value("${car.default-name}")
    private String defaultCarName;

@Configuration

  • 作用:声明一个类作为Spring的配置类。
  • 示例

    @Configuration
    public class AppConfig {}

@Bean

  • 作用:在配置类中,此注解在方法上,表示该方法将返回一个对象,并将其注册为Spring应用上下文中的Bean。
  • 示例

    @Configuration
    public class AppConfig {
        @Bean
        public Car car() {
            return new Car();
        }
    }

@Scope

  • 作用:指定Bean的范围(如单例或原型)。
  • 示例

    @Bean
    @Scope("prototype")
    public Car car() {
        return new Car();
    }

@Profile

  • 作用:定义某个Bean只在某个Profile激活时才能使用。
  • 示例

    @Configuration
    @Profile("development")
    public class DevConfig {}

2. Spring MVC 注解:

@Controller

  • 作用:标识一个类是Spring MVC的控制器。
  • 示例

    @Controller
    public class CarController {}

@RestController

  • 作用:是@Controller的一个特化版本,自动为所有响应添加@ResponseBody注解。
  • 示例

    @RestController
    public class CarAPIController {}

@RequestMapping

  • 作用:定义URL到控制器方法的映射。可以用于类或方法。
  • 示例

    @Controller
    @RequestMapping("/cars")
    public class CarController {
        @RequestMapping("/view")
        public String viewCar() { /* ... */ }
    }

@GetMapping, @PostMapping, @PutMapping, @DeleteMapping

  • 作用:是@RequestMapping的快捷方式,用于指定HTTP的方法类型。
  • 示例

    @GetMapping("/list")
    public List<Car> listCars() { /* ... */ }

@PathVariable

  • 作用:从URI模板中提取变量值。
  • 示例

    @GetMapping("/{id}")
    public Car getCar(@PathVariable Long id) { /* ... */ }

@RequestParam

  • 作用:提取请求参数的值。
  • 示例

    @GetMapping("/search")
    public List<Car> searchCars(@RequestParam String make) { /* ... */ }

@RequestBody

  • 作用:表示某个方法参数应该绑定到HTTP请求体。
  • 示例

    @PostMapping("/add")
    public void addCar(@RequestBody Car car) { /* ... */ }

@ResponseBody

  • 作用:表示方法返回的值应该绑定到HTTP响应体。
  • 示例

    @Controller
    public class CarController {
        @GetMapping("/count")
        @ResponseBody
        public int countCars() { /* ... */ }
    }

@ModelAttribute

  • 作用:绑定方法参数或方法返回值到命名的模型属性。
  • 示例

    @ModelAttribute("car")
    public Car getCar(@RequestParam Long id) { /* ... */ }

@SessionAttributes

  • 作用:指定模型属性应该存储在session中。
  • 示例

    @Controller
    @SessionAttributes("car")
    public class CarController { /* ... */ }

@InitBinder

  • 作用:自定义请求参数的绑定。
  • 示例

    @InitBinder
    public void initBinder(WebDataBinder binder) { /* ... */ }

@ExceptionHandler

  • 作用:处理控制器内部抛出的异常。
  • 示例

    @ExceptionHandler(CarNotFoundException.class)
    public ResponseEntity<String> handleCarNotFound() { /* ... */ }
0
打赏

—— 评论区 ——

昵称
邮箱
网址
取消
人生倒计时
舔狗日记