Spring注解及作用

一:

spring mvc中的@PathVariable是用来获得请求url中的动态参数的

@PathVariable用于方法中的参数,表示方法参数绑定到地址URL的模板:

  1. @Controller
  2. public class TestController {
  3. @RequestMapping(value="/user/{userId}/roles/{roleId}",method = RequestMethod.GET)
  4. public String getLogin(@PathVariable("userId") String userId,
  5. @PathVariable("roleId") String roleId){
  6. System.out.println("User Id : " + userId);
  7. System.out.println("Role Id : " + roleId);
  8. return "hello";
  9. }
  10. @RequestMapping(value="/product/{productId}",method = RequestMethod.GET)
  11. public String getProduct(@PathVariable("productId") String productId){
  12. System.out.println("Product Id : " + productId);
  13. return "hello";
  14. }

  二:

   在Spring MVC里,@ModelAttribute通常使用在Controller方法的参数注解中,用于解释model entity,但同时,也可以放在方法注解里。

    如果把@ModelAttribute放在方法的注解上时,代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法

     /**

     * 登录提交数据处理
     * @Title: login
              */
    @RequestMapping(value="sys/loginIn" ,method = RequestMethod.POST)
    public @ResponseBody DataJSON login(@ModelAttribute User user,
    HttpServletResponse response,
    HttpServletRequest request,
    String autoLogin) throws IOException{

    try{

  //进行公共验证
   DataJSON dataJSON = UserUtil.userLoginVerifyPC(user);

三:

@RequestBody

作用:

i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

使用时机:

  GET、POST方式提时, 根据request header Content-Type的值来判断:

  • application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
  • multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
  • 其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);

@ResponseBody

作用:

该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:

返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

  四:

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
@RequestMapping(value = "/aaa")//类级别,可以没有
public class myController {
    @RequestMapping(value = "/bbb")//方法级别,必须有
    public String getMyName() {
        return "myReturn";
    }
}
对应的action就是:<form action="aaa/bbb">
返回页面就是myReturn.jsp

五:
时间: 2024-12-07 14:53:54

Spring注解及作用的相关文章

spring作用、spring注解、管理对象的作用域与生命周期、自动装配

Spring 1. 作用 创建和管理对象,使得开发过程中,可以不必使用new关键字创建对象,而是直接获取对象!并且,还可以通过一些配置,使得某些获取到的对象,其中某些属性已经是被赋值的! 2. Spring注解 在Spring中,定义了一系列的注解,可以取代几乎所有的XML配置! 尽管使用注解可以完成此前的许多配置,但是,基于Spring的项目仍需要Spring的配置文件! 2.1. 常用注解 使用注解的方式来创建和管理对象,首先,必须在Spring的配置文件中添加组件扫描: <!-- 组件扫描

spring注解@Resource为什么不起作用?

我想要使用注解的方式,在service层调用dao层查询数据库的方法,查询卡号“1”是否存在,可是报错: 这应该注解使用不成功的意思,spring注解应该怎么使用呢? 这里有个完整的例子,项目结构如下 TestAnnotation.java import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;

Spring注解 不起作用

Spring 的context:component-scan扫描支持扫描jar包的方法: 在Eclipse 编辑器中调试程序时一切正常,但是打包放到服务器上时变出现了,Spring注解没有效果.原因就死eclipse自带的jar打包程序,默认打包的时候有个选项<Add directory entries>没有勾选,只要勾选了,勾选后就可以了

Spring 注解详解02

原文: http://www.cnblogs.com/digdeep/p/4525567.html spring 的 bean 容器相关的注解: 1) @Autowired 是我们使用得最多的注解, 其实就是 autowire=byType 就是根据类型的自动注入依赖(基于注解的依赖注入), 可以被使用在属性域, 方法, 构造函数上. 2) @Qualifier 就是 autowire=byName, @Autowired 注解判断多个bean类型相同时, 就需要使用 @Qualifier("x

Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析

URL:http://www.ulewo.com/user/10001/blog/273 我们在使用spring的时候经常会用到这些注解,那么这些注解到底有什么区别呢.我们先来看代码 同样分三层来看: Action 层: package com.ulewo.ioc; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Co

spring注解详解

1. 使用Spring注解来注入属性 1.1. 使用注解以前我们是怎样注入属性的 类的实现: Java代码 public class UserManagerImpl implements UserManager { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } ... } public class UserManagerImpl implements Use

Spring注解@Component、@Repository、@Service、@Controller区别

Spring注解@Component.@Repository.@Service.@Controller区别 Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository.@Service 和 @Controller.在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层.业务层和控制层(Web 层)相对应.虽然目前这 3 个注释和 @Comp

Struts2+Spring3+MyBatis3整合以及Spring注解开发

 分类: Web(2)  版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在做一个SpringMVC+spring+MyBatis的项目,突然想起以前自己要搭建一个Struts2+Spring+IBatis的框架,但是没成功,正好看见培训时候老师给的千里之行的开源项目.于是将这个项目提供的SQL加入到了自己的数据库中(所以数据和项目名用的是qlzx),打算以后做练习的时候用这个数据库.那么接下来问题来了(不要说某翔或者不约,不是那个问题):我有了数据库和数据,想要搭建一个网站,该怎么做

Spring注解简介

提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖. 1. 使用注解方式配置 我们需要修改spring配置文件的头信息,修改部分红色标注,如下: <context:annotation-config/> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/