spring和springmvc常用注解
2017-12-01 21:35
323 查看
1. spring中常用注解
这些注解是用来向spring容器中注册bean。使用这种注解方式注册组件,要在spring的配置文件中配置扫描器。
<context:component-scan base-package="包路径"></context:component-scan> 指定一个包
<context:component-scan base-package="包路径,包路径,包路径"></context:component-scan>指定多个包,中间用逗号隔开即可。
注意:这里的注册指的是将组件交给spring容器管理。
@Controller 用于注册控制层组件(如Struts中的Action和springMVC中的Controller)
@Service 用于注册业务层组件(Service)
@Repository 用于注册数据访问层组件(Dao)
@Component 泛指组件,也就是说上面三种组件都可以用这个注解,但是推荐使用上面的三个注解去注解对应的组件,因为它们有语义化的作用(一看就知道这个组件是干什么的)。这也是spring为什么还出了这三个注释的原因。
上述注解如果不指定value,即表示注册到spring容器中的该类的bean名称为这个类的类名首字母小写形式。也可以指定bean名称:注解(value="bean名")/注解("bean名")
@Scope("prototype") 该注解一般用于struts2中的action上,表示当前aciton是单例的。当然这些配置也可以在xml中进行配置的。
用于bean注入的注解:@Resource和@Autowired 他们都可以用于注入bean
不同之处:
@Autowired注解是byType按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值则要设置required属性为false:@Autowired(required=false)
@Resource注解默认是byName按名称装配依赖对象,但是@Resource有两个重要的属性:name和type
使用name时是按bean名称注入:@Resource(name="contentCategoryService")
使用type时是按bean类型注入:@Resource(type=ContentCategoryService.class)
都不指定则通过反射使用byName形式注入。
2.springmvc常用注解
@RequestMapping 该注解用于处理请求地址映射。 作用类似struts.xml中配置的action配置。如果使用于类上则表示该类中的所有方法的请求地址都要以该地址为父路径。一般如果方法中的请求路径过长可以在类上先配置一个父路径以窄化方法上的路径。
属性:
value:指定请求地址 @RequestMapping("/demo")
method:指定请求的类型有get,post等等 @RequestMapping(value="/delete",method=RequestMethod.POST)
produces:指定返回内容的类型 @RequestMapping(value="/list",produces=MediaType.APPLICATION_JSON_VALUE+";charset=utf-8") 返回json类型编码格式为utf-8
*有时候返回到前台的内容乱码,可能是内容类型不符合。可以利用这个属性进行设置。
.
@ResponseBody 该注解作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
需要注意的是在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。我一般都是用于将pojo对象转换成json格式数据返回到前台。
@RequestParam 用于绑定参数
当前端提交的参数和Controller中用于接收参数的形参名不一样时,使用该注解来绑定形参。
public void upLoad(@RequestParam("file") CommonsMultipartFile fileUpLoad) {}; 表单提交的参数名为file,接收的形参名为fileUpload这时就可以使用该注解了。
@PathVariable 作用:从路径中取参数
使用方法:
如果是从路径中取参数要使用@PathVariable
@RequestMapping("/sync/content/{cid}")
@ResponseBody
public TaotaoResult sysnConten(@PathVariable Long cid) {
}
例如:http://114.67.151.212/rest/sync/content/12,这就是所谓从路径中获取参数,这样就能将12获取到cid中。
如果不使用@PathVariable和{cid}这样那么url应该是:http://114.67.151.212/rest/sync/content/cid=12 这就是它们直接的区别。
@SessionAttributes 将值翻入session作用域中,写在class上 @SessionAttributes(value={"user"},types={String.cla
9d09
ss})
@SessionAttributes不仅仅可以通过属性名指定需要放到会话中的属性外(value 属性值),还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中(types 属性值)
实例:
@SessionAttributes(value={"names"},types={Integer.class})
@Controller
@RequestMapping("/test")
public class TestController {
@RequestMapping("/session2")
public String sessionTest2(Map<String, Object> map) {
map.put("names", Arrays.asList("str1","str2","str3"));//按名称
map.put("age", 22);//按类型
return "success";
}
}
jsp页面:
session中names: ${sessionScope.names }<br/>
session中age: ${sessionScope.age }<br/>
----------------------------------------------------
这些注解是用来向spring容器中注册bean。使用这种注解方式注册组件,要在spring的配置文件中配置扫描器。
<context:component-scan base-package="包路径"></context:component-scan> 指定一个包
<context:component-scan base-package="包路径,包路径,包路径"></context:component-scan>指定多个包,中间用逗号隔开即可。
注意:这里的注册指的是将组件交给spring容器管理。
@Controller 用于注册控制层组件(如Struts中的Action和springMVC中的Controller)
@Service 用于注册业务层组件(Service)
@Repository 用于注册数据访问层组件(Dao)
@Component 泛指组件,也就是说上面三种组件都可以用这个注解,但是推荐使用上面的三个注解去注解对应的组件,因为它们有语义化的作用(一看就知道这个组件是干什么的)。这也是spring为什么还出了这三个注释的原因。
上述注解如果不指定value,即表示注册到spring容器中的该类的bean名称为这个类的类名首字母小写形式。也可以指定bean名称:注解(value="bean名")/注解("bean名")
@Scope("prototype") 该注解一般用于struts2中的action上,表示当前aciton是单例的。当然这些配置也可以在xml中进行配置的。
用于bean注入的注解:@Resource和@Autowired 他们都可以用于注入bean
不同之处:
@Autowired注解是byType按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值则要设置required属性为false:@Autowired(required=false)
@Resource注解默认是byName按名称装配依赖对象,但是@Resource有两个重要的属性:name和type
使用name时是按bean名称注入:@Resource(name="contentCategoryService")
使用type时是按bean类型注入:@Resource(type=ContentCategoryService.class)
都不指定则通过反射使用byName形式注入。
2.springmvc常用注解
@RequestMapping 该注解用于处理请求地址映射。 作用类似struts.xml中配置的action配置。如果使用于类上则表示该类中的所有方法的请求地址都要以该地址为父路径。一般如果方法中的请求路径过长可以在类上先配置一个父路径以窄化方法上的路径。
属性:
value:指定请求地址 @RequestMapping("/demo")
method:指定请求的类型有get,post等等 @RequestMapping(value="/delete",method=RequestMethod.POST)
produces:指定返回内容的类型 @RequestMapping(value="/list",produces=MediaType.APPLICATION_JSON_VALUE+";charset=utf-8") 返回json类型编码格式为utf-8
*有时候返回到前台的内容乱码,可能是内容类型不符合。可以利用这个属性进行设置。
.
@ResponseBody 该注解作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
需要注意的是在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。我一般都是用于将pojo对象转换成json格式数据返回到前台。
@RequestParam 用于绑定参数
当前端提交的参数和Controller中用于接收参数的形参名不一样时,使用该注解来绑定形参。
public void upLoad(@RequestParam("file") CommonsMultipartFile fileUpLoad) {}; 表单提交的参数名为file,接收的形参名为fileUpload这时就可以使用该注解了。
@PathVariable 作用:从路径中取参数
使用方法:
如果是从路径中取参数要使用@PathVariable
@RequestMapping("/sync/content/{cid}")
@ResponseBody
public TaotaoResult sysnConten(@PathVariable Long cid) {
}
例如:http://114.67.151.212/rest/sync/content/12,这就是所谓从路径中获取参数,这样就能将12获取到cid中。
如果不使用@PathVariable和{cid}这样那么url应该是:http://114.67.151.212/rest/sync/content/cid=12 这就是它们直接的区别。
@SessionAttributes 将值翻入session作用域中,写在class上 @SessionAttributes(value={"user"},types={String.cla
9d09
ss})
@SessionAttributes不仅仅可以通过属性名指定需要放到会话中的属性外(value 属性值),还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中(types 属性值)
实例:
@SessionAttributes(value={"names"},types={Integer.class})
@Controller
@RequestMapping("/test")
public class TestController {
@RequestMapping("/session2")
public String sessionTest2(Map<String, Object> map) {
map.put("names", Arrays.asList("str1","str2","str3"));//按名称
map.put("age", 22);//按类型
return "success";
}
}
jsp页面:
session中names: ${sessionScope.names }<br/>
session中age: ${sessionScope.age }<br/>
----------------------------------------------------
相关文章推荐
- Spring和SpringMVC常用注解
- Spring(一)Spring简介、源码包,SpringMVC环境构建、运行原理、常用注解标签
- 注解和注释以及Spring和SpringMVC常用的注解
- Spring学习2_springmvc常用注解之@Controller和@RequestMapping
- SpringMVC Controller介绍及常用注解和SpringMVC表单标签简介
- Spring的学习--SpringMVC的四个基本注解annotation(控制层,业务层,持久层)
- springmvc常用注解标签详解
- SpringMVC常用注解基础知识【转】
- 菜鸟学习Spring——SpringMVC注解版将URL中的参数转成实体
- springMVC常用注解解读
- SpringMVC实现依赖注入的几个常用注解的用法解释和示例说明
- Spring与springmvc整合,@Autowired注解的类被创建两次的问题。
- 【Spring】SpringMVC非注解配置的两种方式
- JavaEE_Mybatis_SpringMVC_Spring_lesson3_注解处理器映射器与适配器以及处理器(Controller)
- springmvc常用注解标签详解
- springmvc3.2+spring+hibernate4.2 全注解整合,亲测可用
- spring常用注解
- springmvc常用注解标签详解
- Spring常用的一些注解以及注解注入总结
- springmvc注解常用