`
geeksun
  • 浏览: 953044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring mvc的注解

 
阅读更多

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网络资源,在此表示感谢。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics