SpringMvc注解 -@Controller、@Service、@Repository 等

来源:互联网 发布:什么自拍软件最好 编辑:程序博客网 时间:2024/05/18 15:06

----------------------------------------------------------------SpringMvc注解--------------------------------------------------

1、@Controller  使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。

2、@Service 用来标注业务层组件

3、@Repository 用于标注访问数据库层的组件

4、@Component 不好归类,把不同组件

5、@RequestMapping 

 (1)params属性     @RequestMapping (value= "testParams" , params={ "param1=value1" , "param2" , "!param3" })       public String testParams() {       return "testParams" ;      }用@RequestMapping 的params 属性指定了三个参数,这些参数都是针对请求参数而言的,它们分别表示参数param1 的值必须等于value1 ,参数param2 必须存             在,值无所谓,参数param3 必须不存在,只有当请求/testParams.do 并且满足指定的三个参数条件的时候才能访问到该方法(2)method属性     @RequestMapping (value= "testMethod" , method={RequestMethod. GET , RequestMethod. DELETE })       public String testMethod() {       return "method" ;     }      在上面的代码中就使用method 参数限制了以GET 或DELETE 方法请求/testMethod 的时候才能访问到该Controller 的testMethod 方法。(3)headers属性    @RequestMapping (value= "testHeaders" , headers={ "host=localhost" , "Accept" })       public String testHeaders() {       return "headers" ;    }    headers 属性的用法和功能与params 属性相似。在上面的代码中当请求/testHeaders.do 的时候只有当请求头包含Accept 信息,且请求的host 为localhost 的时候才能     正确的访问到testHeaders 方法。   RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

@RequestMapping(value = "/aaa")//类级别,可以没有public class myController {    @RequestMapping(value = "/bbb")//方法级别,必须有    public String getMyName() {        return "myReturn";    }}


6、@RestController

@RestController = @Controller + @ResponseBody。
1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
例如:本来应该到success.jsp页面的,则其显示success.
2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
3)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
可以直接使用@Controller,如果需要返回json可以直接在方法中添加@ResponseBody

用@RestController是会把返回值默认为json字符串返回给浏览器,要想返回jsp界面,如下public ModelAndView login(){        ModelAndView mv = new ModelAndView("index");        return mv;    }
7、@PathVariable获取请求路径变量
    @RequestMapping(value = "person/profile/{id}/{name}/{status}")    @ResponseBody    public Person porfile(@PathVariable int id,@PathVariable String name,@PathVariable boolean status) {        return new Person(id, name, status);    }

8、@RequestParam

  @RequestParam是传递参数的.
  @RequestParam用于将请求参数区数据映射到功能处理方法的参数上。


  在url中输入:localhost:8080/**/?userName=zhangsan
  请求中包含username参数(如/requestparam1?userName=zhang),则自动传入。
  
  1、public String queryUserName(@RequestParam String userName)
  2、public String queryUserName(@RequestParam(value="userName" ,required =false ) String userName)
  
  可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传 
  // required=false表示不传的话,会给参数赋值为null,required=true就是必须要有  
  

9、@Transactional

         @Transactional(propagation=Propagation.REQUIRED)
         如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)
         @Transactional(propagation=Propagation.NOT_SUPPORTED) 
         容器不为这个方法开启事务
         @Transactional(propagation=Propagation.REQUIRES_NEW) 
         不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
         @Transactional(propagation=Propagation.MANDATORY) 
         必须在一个已有的事务中执行,否则抛出异常
         @Transactional(propagation=Propagation.NEVER)
         必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)
         @Transactional(propagation=Propagation.SUPPORTS) 
         如果其他bean调用这个方法,在其他bean中声明事务,那就用事务。如果其他bean没有声明事务,那就不用事务
         @Transactional(rollbackFor=Exception.class) //指定回滚,遇到异常Exception时回滚
         @Transactional(noRollbackFor=Exception.class)//指定不回滚,遇到运行期异常(throw new RuntimeException("注释");)会回滚

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 朋友代购贵了怎么办 赢时通把车开走怎么办 杭州房子租不起怎么办 质量效应2吵架怎么办 学生有两个学籍怎么办 孩子出现双学籍怎么办 在外地读书学籍怎么办 上高中没学籍怎么办 电信欠费了网络怎么办 头发里长脓包怎么办 工作总是做不好怎么办 能力差的人该怎么办 洗衣机里有味道怎么办 洗衣机里面有味道怎么办 洗衣机内有味道怎么办 洗衣机总有味道怎么办 上体育课脚扭伤怎么办 教学实践评价表怎么办 初中孩子成绩下降怎么办 给孩子开家长会怎么办 读初三很难受怎么办 初三了英语很差怎么办 数学考30分怎么办 小学生阅读理解能力差怎么办 小学一年级数学差怎么办 小学一年级数学很差怎么办 初中生脸上长斑怎么办 初中生脸上长痘怎么办 初中成绩不好高中怎么办 农村老人去城里怎么办 留守儿童想妈妈怎么办 教师档案丢失了怎么办 转正定级表丢失怎么办 娃娃写作业慢怎么办 写作业眼睛疼怎么办 发生火灾怎么办大班教案 大班健康发生火灾怎么办 学生上课不提问怎么办 入户通知单丢了怎么办 打架后还来找事该怎么办 着火了怎么办教案视频