Spring4新增注解annotation
@RestController: Rest控制器, 使用这个注解,可直接返回json等格式数据
Spring3注解
@Controller: 控制器,将请求处理后返回到front page,定义表现层。
@Service: 业务方法,业务层
@Repository: 库,常用来引用dao类,持久化层
@Component: 泛指组件,当不好归类时使用
@RequestMapping: Url映射,可以映射在class或method上
RequestMapping有个参数params,如果定义则调用此mapping时必须要传这个参数过来。如:
@RequestMapping(value = "/product_category/list", params = "method=condition")
public List<ProductCategory> getProductCategoryByCondition(@RequestParam("name") String name){
ProductCategory productCategory = new ProductCategory();
productCategory.setName(name);
List<ProductCategory> productCategories = productService.getProductCategoryByCondition(productCategory);
return productCategories;
}
在访问这个方法的url里, 必须有method=condition和name=,否则访问不到这个方法,提示404.
这个Url是合法的: http://localhost:8080/product/manage/product_category/list?method=condition&name=%E6%89%8B%E6%9C%BA
@PathVariable : 在Path参数中传递变量
// 查看产品详细信息
@RequestMapping("/view/{productId}")
public ProductVo viewProduct(@PathVariable Long productId, @RequestParam("pretty") int pretty){
@RequestParam:用于获取访问URL所需要的参数,有value和required两个属性,required=false表明此属性不是必需的。 常用来处理简单类型的绑定。 形似于request.getParameter()
@RequestMapping("/show")
public void showParam(@RequestParam int id, @RequestParam("name") String username) {
//这样做进行URL请求访问这个方法的时候,就会先从request中获取参数id的值赋给参数变量id,从request中获取参数name的值赋给参数变量username
}
@ModelAttribute: 用来通过名称对应,把相应名称的值绑定到注解的bean上。要绑定的值来源于指定的model对象。
// 新增产品
@RequestMapping(value="/create", method = RequestMethod.POST, produces = "application/json; charset=utf-8")
public String createProduct(@ModelAttribute Product product){
上面的 produces = "application/json; charset=utf-8" ,可以使用返回到client的json数据以utf-8编码显示。
@Resource: 引用资源,用于注入资源,默认按名称装配@Resource(name="beanName")(j2EE提供)
@Autowired: 用于注入,默认按类型装配(Spring提供)
<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
<context component-scan/> :组件扫描,将扫描到的包中的类自动装载成bean,如@Controller、@Service、@Repository、@Component.
总结:
若要绑定的对象是简单类型: 调用@RequestParam来处理。
若要绑定的对象是复杂类型: 调用@ModelAttribute来处理。
简单类型指java的原始类型(boolean, int 等)、原始类型对象(Boolean, Int等)、String、Date等。
部分内容quote网络资源,在此表示感谢。