@RequestBody,@PathVariable和@RequestParam代码实例
时间: 2023-11-15 09:00:06 浏览: 83
@RequestBody注解用于将HTTP请求正文中的JSON或XML数据绑定到方法的参数上。示例代码如下:
@PostMapping("/users")
public User createUser(@RequestBody User user){
//创建用户
}
@PathVariable注解用于从URL中获取参数值。示例代码如下:
@GetMapping("/users/{id}")
public User getUserById(@PathVariable Long id){
//根据id获取用户信息
}
@RequestParam注解用于从查询字符串或表单数据中获取单个参数值。示例代码如下:
@GetMapping("/users")
public List<User> getUsersByRole(@RequestParam String role){
//根据角色获取用户列表
}
注意:以上三个注解可以同时使用,但是要注意它们的使用场景和参数类型。
相关问题
Spring Data的代码实例
下面是一个简单的 Spring Data 的代码实例,使用了 Spring Data JPA 和 Hibernate。
1. 定义实体类
```java
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "age")
private Integer age;
// getter、setter、构造函数等省略
}
```
2. 创建 Repository 接口
```java
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByName(String name);
}
```
3. 编写 Service 类
```java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public List<User> findByName(String name) {
return userRepository.findByName(name);
}
public User save(User user) {
return userRepository.save(user);
}
public void delete(Long id) {
userRepository.deleteById(id);
}
}
```
4. 使用 Service 类
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public List<User> getUsers(@RequestParam(required = false) String name) {
if (name != null) {
return userService.findByName(name);
} else {
return userService.findAll();
}
}
@PostMapping("/users")
public User createUser(@RequestBody User user) {
return userService.save(user);
}
@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable Long id) {
userService.delete(id);
}
}
```
阅读全文