一、spring注解开发中常用注解以及简单配置
1、为什么要用注解开发:spring的核心是Ioc容器和Aop,对于传统的Ioc编程来说我们需要在spring的配置文件中邪大量的bean来向spring容器中注入bean对象,
然而,通过注解编程可以缩短我们开发的时间,简化程序员的代码编写。
2、如何开启注解开发:最常用的方法是使用<mvc:annotation-driven/>来开启注解编程(用一个标签配置了spring注解编程的映射器和适配器,同时配置了许多的参数)
3、如何将有注解的bean注入spring容器中:<context:component-scan base-package="。。。。"/>base-package表示你要注入spring容器的bean所在的包
比如:base-package="edu.mybatis.controller",就会将该包下的所有需要注入spring容器的bean对象,自动注入spring容器中,
二、常用的注解及应用
1、@Controller:控制器定义
在你你定义的Controller类上添加注解@Controller
2、Requestmapping:次注解一般和@Controller注解一起使用,该注解将类似“/findUserById”这样的url映射到特定的处理方法或者类上上,用户通过http请求进行访问。
(1)用在类上是用来窄化请求:
@Controller
@RequestMapping("user")
public class UserController {。。。。}
(2)用在方法上是用来进行url映射
@RequestMapping("/queryUsers")
public ModelAndView queryUsers(UserQueryVo userQueryVo){
System.out.println(userQueryVo);
List<UserExtends>userList=userService.findUserList(userQueryVo);
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("userList", userList);
modelAndView.setViewName("index");
return modelAndView;
}
(3)@RequeatParam将请求的参数绑定到方法的指定参数上
public String editUser(Model model, @RequestParam(value="id",required=true)Integer user_id){
UserExtends userExtends=userService.findUserById(user_id);
model.addAttribute("user", userExtends);
return "edit";
}
(4)RequestBody:指定方法参数应该被绑定到HTTP请求body上,@RequestBody在构建REST架构时比较方便
public void handle(@RequestBody String body, Writer writer) throws IOException {
writer.write(body);
}
(5)@ResponseBody与requestBody类似,它的作用是将返回类型直接输入到HTTP response body中。@ResponseBody在输出JSON格式的数据时,会经常用到。
@RequestMapping(value = "/something", method = RequestMethod.PUT)
@ResponseBody
public String helloWorld() {
return "Hello World";
}
(6)@Autowired:将spring容器中的bean注入
@Autowired
private UserService userService;
注意:注入对象的名字与spring容器中的id名相同