springboot注释
时间: 2025-01-03 18:32:39 浏览: 6
### Spring Boot 中的注解使用方法
在构建基于 Spring Boot 的应用程序时,注解用于简化配置并增强功能。以下是几个常用的注解及其应用实例。
#### @SpringBootApplication 注解
此注解是一个组合注解,它包含了 `@Configuration`、`@EnableAutoConfiguration` 和 `@ComponentScan` 功能[^1]。这使得创建独立的应用程序变得简单快捷。
```java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
#### @RestController 与 @RequestMapping 注解
这两个注解通常一起使用来定义 RESTful Web 服务控制器。前者表明该类为 REST 控制器;后者则用来映射 HTTP 请求到特定的方法上。
```java
@RestController
@RequestMapping("/api")
public class MyController {
@GetMapping("/hello")
public String sayHello() {
return "Hello from Spring Boot!";
}
}
```
#### @Autowired 注解
自动装配依赖关系是最常见的需求之一,在 Spring 中可以通过 `@Autowired` 来实现这一点。它可以应用于字段、构造函数或 setter 方法中。
```java
@Service
class MyService {}
@Component
class AnotherClass {
private final MyService myService;
@Autowired
public AnotherClass(MyService myService){
this.myService = myService;
}
}
```
#### WebSocket 相关注解
对于 WebSocket 支持,可以利用如下所示的一些特殊注解:
- **@MessageMapping**: 类似于 `@RequestMapping`,但是专门针对消息路由;
- **@SendTo**: 将处理后的消息发送给指定的目标地址;
- **@SubscribeMapping**: 处理订阅请求的消息端点。
下面给出一个简单的聊天室例子说明这些注解如何工作:
```java
@Controller
public class ChatController {
@MessageMapping("/chat.sendMessage")
@SendTo("/topic/public")
public OutputMessage sendMessage(Message message) throws Exception {
Thread.sleep(1000); // simulated delay
return new OutputMessage(message.getFrom(), message.getText(), new Date());
}
@MessageMapping("/chat.addUser")
@SendTo("/topic/public")
public OutputMessage addUser(@Payload Message message, SimpMessageHeaderAccessor headerAccessor) {
// Add username in web socket session
headerAccessor.getSessionAttributes().put("username", message.getFrom());
return new OutputMessage(message.getFrom(), "join the chat", new Date());
}
}
```
阅读全文