spring常用的注解
来源:互联网 发布:好老板进销存软件 编辑:程序博客网 时间:2024/05/21 17:48
@controller
用于标注控制层,并且把该类注入到spring容器中,如果不指定默认的beanName为该类的类名(首字母小写),指定的话通过@Controller("beanName")自定义。
@Service
用于标注业务层,功能和@Controller没本质的区,只是为了让代码的结构清晰,层次分明,可能在以后的版本中会为各自的注解添加特定的功能(@Controller和@Service互用程序运行不会报错,但是不建议这样做)。
@Repository
用来标注数据层同@controller和@Repository一样
@RequestMapping
用于进行资源的请求映射,可以放在方法和类上面。
1.既放在方法也放在类上,访问的url为:http://localhost:8080/项目名/haha/selectUserById
@Controller@RequestMapping(value="/haha")public class UserController { @RequestMapping(value="/selectUserById") public ModelAndView selectUserBy(){ ModelAndView modelAndView = new ModelAndView(); return modelAndView; }
2.只放在方法上,访问的url为: http://localhost:8080/项目名/selectUserById
@Controllerpublic class UserController { @RequestMapping(value="/selectUserById") public ModelAndView selectUserBy(){ ModelAndView modelAndView = new ModelAndView(); return modelAndView; }
说明:为类上加上requestMapping只是对请求的url进行分类,让url的请求变的有层次清晰。
@Resource 和 @Autowired
@Resource是j2ee的注解,有两个属性比较重要,@Resource(name=" ")和@Resource(type=" "),如果指定了name属性,那么就在容器里寻找匹配的id等于name的bean,找不到则抛出异常。如果指定的是type属性,则在容器里面查找类型匹配的唯一的bean,找不到或者找到了多个都会抛出异常。如果既没有指定name,也没有指定type,则默认用byName方式进行装配,如果没有则去按照byType类型进行匹配。 @Autowired是spring的注解,默认按照byType类型进行匹配,如果找不到会报错,但是@Autowired(required = false)将required设置为false即使找不到也不会报错。默认情况下只允许一个唯一匹配的类型的bean,如果匹配到多个则会报错,这个时候加上@Autowired@Qualifier("beanName"),则会根据指定的beanName进行匹配。
@ResponseBody
在方法上加上该注解,将controller中方法的返回的对象通过适当的转换器转换为指定的格式,然后直接写入resposne的body中返回到客户端,一般返回的json和xml数据。具体使用如下:
注解方式的映射器和适配器<.mvc:annotation-driven.>,他可以根据classpath中的内容提供一些功能,其中就包括支持读写json,但是classpath中必须有Jackson。因此,只需要开启注解方式的映射器和适配器,并且在classpath中导入Jackson的架包,然后再方法上加@ResponseBody注解,放回的对象就会被转换成json格式,并且写入response的body中返回给客户端。
@RequestMapping(value="/selectUserByIdNine") @ResponseBody public User selectUserByIdNine(){ User user = new User(); user.setAge(23); user.setName("张锐"); return user; }
说明:前端控制器调用适配器来处理这个方法,处理器适配器执行完将返回的结果转换成json格式的数据,不再返回给前端控制器进行后面的流程,而是直接把数据写到了resoponse的body体中。
@PathVariable
resful规则的支持,用于获取resful规则的url中的变量的值
@RequestMapping(value="/selectUserByIdFive/{id}") public String seletUserByIdFive(@PathVariable("id") Integer haha,HttpServletRequest request){ User user = userService.selectUserById(haha); request.setAttribute("user", user); return "zhangrui"; }
如上所示,如访问的url为localhost:8080/项目明/selectUserByIdFive/2,则方法绑定的变量haha的值为2, 若@PathVariable(“”)中不指定url中的变量名,则后面绑定的参数名必须和url中的变量名一致如:@PathVariable Integer id。
@requestParam
@requestParam注解应该是对request.getParameter()的封装,从请求的request中获取请求的参数的值,并且把获取的String类型的参数指定的转化为简单类型的参数进行绑定。该注解有三个属性:defaultValue,required,value。value设置要获取的request请求中的参数名,required设置是否必须绑定有参数值的传入,defaultValue设置默认值。
@RequestMapping(value="/selectUserByIdSix") public String selectUserByIdSix(@RequestParam(value="userId",required=false) Integer id){ System.out.println("id="+id); return "zhangrui"; }
如上:如果不设置value的时候,后面绑定的参数的名必须和request中请求的参数名一致。如果不设置required,required默认为true,required为true时,意思为必须有参数的绑定,则必须在request请求中存在绑定的参数名,如果设置required为false,则不要求必须有参数的绑定,当在reqeust中找不到绑定的参数名时,则设置后面绑定的参数的值为NULL,所有在这里不能用int,否则报错。
@RequestMapping(value="/selectUserByIdSix") public String selectUserByIdSix(@RequestParam(value="userId",required=false,defaultValue="10") String id){ System.out.println("id="+id); return "zhangrui"; }
如上:defaultValue设置默认值,只能是String类型,所以后面绑定的参数类型只能是String类型,不然报错。
@RequestHeader
用于把request请求头上的值绑定要方法的参数上。
Host localhost:8080Accept text/html,application/xhtml+xml,application/xml;q=0.9Accept-Language fr,en-gb;q=0.7,en;q=0.3Accept-Encoding gzip,deflateAccept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive 300
@RequestMapping(value="/selectUserByIdFive") public String seletUserByIdFive(@RequestHeader(value="Keep-Alive",required=false,defaultValue="zhangrui") String Header){ System.out.println("Header="+Header); return "zhangrui"; }
如上所示,@RequestHeader可以从request请求头中取得Keep-Alive 的值为300,@RequestHeader的三个属性的用法和@RequestParam一样,@RequestParam和@RequestHeader从单词的字面意思上就能看出来他们的异同。
- Spring常用的注解
- Spring的常用注解
- spring常用的注解
- Spring常用的注解
- spring的常用注解
- spring mvc常用的注解:
- spring mvc常用的注解:
- spring的一些常用注解
- spring mvc常用的注解:
- Spring MVC常用的注解
- spring mvc常用的注解:
- Spring MVC常用的注解
- Spring MVC常用的注解
- Spring MVC常用的注解
- Spring MVC常用的注解
- Spring MVC常用的注解
- Spring常用的四大注解
- spring mvc常用的注解
- PowerDesigner v16.5.5.0.4693 [64位]
- 关于应用使用jdbc链接数据库的错误
- 9.Python之文件
- 算法复习--排序
- solr集群搭建
- spring常用的注解
- 散列、散列函数、冲突处理
- git reset--hard后恢复暂存区文件
- 代理模式
- PHP Notice: Undefined variable: HTTP_POST_FILES Undefined variable: HTTP_POST_VARS
- 算法竞赛入门经典训练指南 例题1-15 网络 Network UVALive 3902
- spring boot整合redis实现shiro的分布式session共享
- 有关HashMap的面试题
- 广告