下面就为大家详细讲解“Spring常用注解及http数据转换教程”的完整攻略。
一、Spring常用注解
在Spring框架中,注解是一项非常重要的功能,在实际开发中,开发者经常会使用到Spring框架中的注解。下面列出Spring中常用的注解及其使用方法:
1. @Autowired
@Autowired注解为Spring中的自动装配注解,作用是自动装配被注解的类的实例。使用@Autowired注解时,Spring会自动搜索合适的bean并注入到指定的变量中。
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
//...
}
2. @Controller
@Controller注解用于标注一个类为SpringMVC的控制器,用于接收前端的请求并返回处理结果。使用@Controller注解时,需要配合@RequestMapping注解一起使用。
@Controller
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(Model model) {
List<User> userList = userService.getUserList();
model.addAttribute("userList", userList);
return "user/list";
}
//...
}
3. @Service
@Service注解用于标注一个类为Spring中的服务层组件,主要用于业务逻辑的实现。使用@Service注解时,Spring会将被注解的类实例化为一个bean并管理它的生命周期。
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
//...
}
4. @Repository
@Repository注解用于标注一个类为Spring中的数据访问组件,主要用于数据库访问。使用@Repository注解时,Spring会将被注解的类实例化为一个bean并管理它的生命周期。
@Repository
public interface UserDao {
User getUserById(Long id);
//...
}
5. @RequestMapping
@RequestMapping注解用于标注一个方法可以处理哪些请求,指定请求的路径和请求方法等属性。在SpringMVC中,使用@RequestMapping注解来处理请求非常重要。
@Controller
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(Model model) {
List<User> userList = userService.getUserList();
model.addAttribute("userList", userList);
return "user/list";
}
//...
}
6. @PathVariable
@PathVariable注解用于绑定请求URL中的变量值到方法的参数上。
@Controller
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public String detail(@PathVariable("id") Long id, Model model) {
User user = userService.getUserById(id);
model.addAttribute("user", user);
return "user/detail;
}
//...
}
7. @ResponseBody
@ResponseBody注解可以将Controller的方法返回的对象转换为指定格式的数据,例如JSON格式。
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public @ResponseBody List<User> list() {
List<User> userList = userService.getUserList();
return userList;
}
//...
}
二、HTTP数据转换教程
Spring提供了许多HTTP数据转换器,可以将请求体中的数据转换成指定格式的Java对象,例如JSON、XML等,方便我们进行数据的处理。
下面介绍Spring提供的HTTP数据转换器及其使用方法:
1. MappingJackson2HttpMessageConverter
MappingJackson2HttpMessageConverter是Spring中用于将JSON数据转换为Java对象的HTTP数据转换器,使用它可以便捷地将请求体中的JSON数据转换为JavaBean对象。
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/add", method = RequestMethod.POST)
public User add(@RequestBody User user) {
userService.addUser(user);
return user;
}
//...
}
2. MarshallingHttpMessageConverter
MarshallingHttpMessageConverter是Spring中用于将XML数据转换为Java对象的HTTP数据转换器,使用它可以便捷地将请求体中的XML数据转换为JavaBean对象。
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/add", method = RequestMethod.POST)
public User add(@RequestBody User user) {
userService.addUser(user);
return user;
}
//...
}
示例
下面还提供两个示例,便于大家更好地理解。
示例1
1. 实体类User
public class User {
private Long id;
private String name;
private Integer age;
//setter&getter
}
2. Controller层UserController
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/add", method = RequestMethod.POST)
public User add(@RequestBody User user) {
userService.addUser(user);
return user;
}
//...
}
3. HTTP请求URL
http://localhost:8080/user/add
4. HTTP请求Body
{
"name":"tom",
"age":18
}
5. HTTP响应Body
{
"id":1,
"name":"tom",
"age":18
}
示例2
1. 实体类User
@XmlRootElement
public class User {
private Long id;
private String name;
private Integer age;
//getter&setter
}
2. Controller层UserController
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/add", method = RequestMethod.POST)
public User add(@RequestBody User user) {
userService.addUser(user);
return user;
}
//...
}
3. HTTP请求URL
http://localhost:8080/user/add
4. HTTP请求Body
<?xml version="1.0" encoding="UTF-8"?>
<user>
<name>tom</name>
<age>18</age>
</user>
5. HTTP响应Body
<user>
<id>1</id>
<name>tom</name>
<age>18</age>
</user>
以上就是“Spring常用注解及http数据转换教程”的完整攻略了,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring常用注解及http数据转换教程 - Python技术站