@SpringBootApplication
- 标注在主程序类上,表示这是一个Spring Boot应用的入口。
- 它是一个复合注解,包括了@Configuration、@EnableAutoConfiguration和@ComponentScan。
@SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }
@EnableAutoConfiguration
- 启用Spring Boot的自动配置机制,根据添加的依赖和配置文件自动配置Spring应用。
@EnableAutoConfiguration public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }
@Configuration
- 标识一个类作为配置类,相当于传统的Spring XML配置文件。
- 可以包含一个或多个@Bean方法。
@Configuration public class AppConfig { @Bean public MyService myService() { return new MyServiceImpl(); } }
@ComponentScan
- 指定要扫描的包,以便发现和注册Spring组件。
- 默认情况下,扫描主应用类所在的包及其子包。
@ComponentScan(basePackages = "com.example") public class MyApplication { }
@Component
- 将一个类标识为Spring组件(Bean),可以被Spring容器自动检测和注册。
- 通用注解,适用于任何层次的组件。
@Component public class MyComponent { }
@Service
- 标识服务层组件,实际上是@Component的一个特化,用于表示业务逻辑服务。
@Service public class MyService { }
@Repository
- 标识持久层组件(dao层),实际上是@Component的一个特化,用于表示数据访问组件。
- 常用于与数据库交互。
@Repository public class MyRepository { }
@Controller
- 标识控制层组件,实际上是@Component的一个特化,用于表示Web控制器。
- 处理HTTP请求并返回视图或响应数据。
@Controller public class MyController { }
@RestController
- 标识RESTful Web服务的控制器,实际上是@Controller和@ResponseBody的结合。
- 返回的对象会自动序列化为JSON或XML,并写入HTTP响应体中。
@RestController public class MyRestController { }
@RequestMapping
- 映射HTTP请求到处理方法上(支持GET、POST、PUT、DELETE等)。
@Controller public class MyController { @RequestMapping("/hello") public String sayHello() { return "hello"; } }
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping
- 映射HTTP请求到处理方法上,是@RequestMapping的简化版本。
@RestController public class MyRestController { /* @GetMapping("users") 等价于@RequestMapping(value="/users",method=RequestMethod.GET) @PostMapping("users") 等价于@RequestMapping(value="/users",method=RequestMethod.POST) @PutMapping("/users/{userId}") 等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.PUT) */ @DeleteMapping("/users/{userId}")等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.DELETE) @GetMapping("/users") public List<User> getUsers() { return userService.getAllUsers(); } }
@ResponseBody
- 将方法的返回值转换为指定格式(如JSON、XML)作为HTTP响应的内容返回给客户端。
- 常用于RESTful服务中。
@RestController public class MyRestController { @GetMapping("/hello") @ResponseBody public String sayHello() { return "Hello, World!"; } }
@RequestBody
- 将HTTP请求体的内容(如JSON、XML)转换为Java对象。
- 常用于接收前端传递的数据。
@RestController public class MyRestController { @PostMapping("/users") public User createUser(@RequestBody User user) { return userService.createUser(user); } }
@Autowired
- 用于自动注入依赖对象。
@Autowired @Qualifier("baseDao") private BaseDao baseDao;
@Qualifier
- 用于指定注入特定名称的bean。