spring常用注解详解
来源:互联网 发布:电子贺卡制作软件 编辑:程序博客网 时间:2024/05/16 12:16
spring3.0中,使用注解要先在xml中配置组件自动扫描
<!--自动扫描通过注解配置的组件 --> <context:component-scan base-package="cn.com.*"/>
1.@Controller
@Controller对应表现层的Bean,比如Action,如:
@Controller @Scope("prototype") public class PersonController { }
使用@Controller注解标识PersonController 之后,就表示要把UserController交给Spring容器管理,在Spring容器中会存在一个名字为”UserController”的action,这个名字是根据PersonController 类名来取的。注意:如果@Controller不指定其value【@Controller】,则默认的bean名字为这个类的类名首字母小写, 如果指定value【@Controller(value=”PersonController “)】或者【@Controller(“PersonController”)】,则使用value作为bean的名字。
这里的PersonController 还使用了@Scope注解,@Scope(“prototype”)表示将Action的范围声明为原型,可以利用容器的scope=”prototype”来保证每一个请求有一个单独的Action来处理,避免struts中Action的线程安全问题。spring 默认scope是单例模式(scope=”singleton”),这样只会创建一个Action对象,每次访问都是同一Action对象,数据不安全,struts2 是要求每次次访问都对应不同的Action,scope=”prototype” 可以保证当有请求的时候都创建一个Action对象。
2.@RequestMapping
@RequestMapping是一种通过匹配URL路径来访问相应页面的,@RequestMapping 注解将类似 “/user”这样的URL映射到整个类或特定的处理方法上。一般来说,类级别的注解映射特定的请求路径到表单控制器上,而方法级别的注解只是映射为一个特定的HTTP方法请求(“GET”,“POST”等)或HTTP请求参数。
@Controller @RequestMapping("/user") public class UserController { @RequestMapping(value = "/list", method = {RequestMethod.GET,RequestMethod.POST}) public String list(HttpServletRequest request) { } }
3.@Autowired
将 @Autowired 注释标注在成员变量上 ,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
@Autowired 根据bean 类型从spring 上线文中进行查找,注册类型必须唯一,否则报异常。与@Resource 的区别在于,@Resource 允许通过bean 名称或bean 类型两种方式进行查找@Autowired(required=false) 表示,如果spring 上下文中没有找到该类型的bean 时, 才会使用new SoftPMServiceImpl(); @Autowired 标注作用于 Map 类型时,如果 Map 的 key 为 String 类型,则 Spring 会将容器中所有类型符合 Map 的 value 对应的类型的 Bean 增加进来,用 Bean 的 id 或 name 作为 Map 的 key。 @Autowired 还有一个作用就是,如果将其标注在 BeanFactory 类型、ApplicationContext 类型、ResourceLoader 类型、ApplicationEventPublisher 类型、MessageSource 类型上,那么 Spring 会自动注入这些实现类的实例,不需要额外的操作。
@Controller @RequestMapping("/user") public class UserController { @Autowired private UserBiz userBiz; }
4.@RequestParam
@RequestParam将请求的参数绑定到方法中的参数上。其实,即使不配置该参数,注解也会默认使用该参数。如果想自定义指定参数的话,如果将@RequestParam的 required 属性设置为false(如@RequestParam(value=”id”,required=false))。
5.@RequestBody
@RequestBody是指方法参数应该被绑定到HTTP请求Body上
@RequestMapping(value = "/user",method = RequestMethod.GET) public void UserInfo(@RequestBody String userId,User user){ }
6.@ResponseBody
@ResponseBody与@RequestBody类似,它的作用是将返回类型直接输入到HTTP response body中。最常用的我们使用ajax传输json,需要再类上面配置@ResponseBody。
@ResponseBody @RequestMapping(value = "/user", method = RequestMethod.POST) public String list() { return "Hello World"; }
- Spring常用注解详解
- spring常用注解详解
- Spring常用注解详解
- spring mvc常用注解详解
- spring boot常用注解详解
- Spring MVC常用注解详解
- 详解Spring MVC 4常用的注解
- 详解spring mvc 3.0常用注解
- 详解Spring MVC 常用的那些注解
- Spring mvc常用注解标签详解
- Spring常用注解以及注解注入contextcomponent-scan详解
- [Spring学习笔记 3 ] spring 注解详解,完全注解,常用注解
- 【spring ----- 注解篇】 常用注解
- 详解Spring MVC 4常用的那些注解
- 详解Spring MVC 4常用的那些注解
- 详解Spring MVC 4常用的那些注解
- 详解Spring MVC 4常用的那些注解
- 详解Spring MVC 4常用的那些注解
- 【nginx源码学习与运用 一】内存池结构ngx_pool_t
- VS2013/MFC编程入门之二十五(常用控件:滚动条控件Scroll Bar)
- leetcode-45. Jump Game II
- 面试题整理
- 浏览器问题
- spring常用注解详解
- 自己编写函数
- CentOS7+LNMP博客站点添加https
- android设备 uvc摄像头 相关
- [Hibernate]HibernateTemplate、HibernateDaoSupport两种方法实现增删改查
- [数据结构]用插入排序和选择排序的思想实现优先级队列
- 查看mysql的连接数量
- CentOS 6.7安装Spark 1.5.2
- CefSharp初识--把网页移到桌面