ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:65.07KB ,
资源ID:25817282      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25817282.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Spring常用注解汇总.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Spring常用注解汇总.docx

1、Spring常用注解汇总Spring常用注解汇总本文汇总了Spring的常用注解,以方便大家查询和使用,具体如下:使用注解之前要开启自动扫描功能其中base-package为需要扫描的包(含子包)。?1Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了Bean,就会作为这个Spring容器中的Bean。Scope注解 作用域Lazy(true) 表示延迟初始化Service用于标注业务层组件、Controller用于标注控制层组件(如struts中的action)Repository用于标注数据访问组件,即DAO组件。Component泛指组件,当组件不好归类的时

2、候,我们可以使用这个注解进行标注。Scope用于指定scope作用域的(用在类上)PostConstruct用于指定初始化方法(用在方法上)PreDestory用于指定销毁方法(用在方法上)1.RequestMapping用来定义访问的URL,你可以为整个类定义一个RequestMapping,或者为每个方法指定一个。把RequestMapping放在类级别上,这可令它与方法级别上的RequestMapping注解协同工作,取得缩小选择范围的效果。例如:RequestMapping(/test)public class TestController 则,该类下的所有访问路径都在/test之下。

3、2.将RequestMapping用于整个类不是必须的,如果没有配置,所有的方法的访问路径配置将是完全独立的,没有任何关联。3.完整的参数项为:RequestMapping(value=,method =,headers=,params=,),各参数说明如下:value :String 设置访问地址method: RequestMethod设置访问方式,字符数组,查看RequestMethod类,包括GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE,常用RequestMethod.GET,RequestMethod.POSTheaders:String

4、headers一般结合method = RequestMethod.POST使用params: String 访问参数设置,字符数组 例如:userId=id4.value的配置还可以采用模版变量的形式 ,例如:RequestMapping(value=/owners/ownerId, method=RequestMethod.GET),这点将在介绍PathVariable中详细说明。5.RequestMapping params的补充说明,你可以通过设置参数条件来限制访问地址,例如params=myParam=myValue表达式,访问地址中参数只有包含了该规定的值myParam=myVal

5、ue才能匹配得上,类似myParam之类的表达式也是支持的,表示当前请求的地址必须有该参数(参数的值可以是任意),!myParam之类的表达式表明当前请求的地址不能包含具体指定的参数myParam。6.有一点需要注意的,如果为类定义了访问地址为*.do,*.html之类的,则在方法级的RequestMapping,不能再定义value值,否则会报错,例如Java代码RequestMapping(/bbs.do)public class BbsController RequestMapping(params = method=getList) public String getList() re

6、turn list; RequestMapping(value= /spList)public String getSpecialList() return splist; 如上例:/bbs.do?method=getList 可以访问到方法getList() ;而访问/bbs.do/spList则会报错.PathVariable1.PathVariable用于方法中的参数,表示方法参数绑定到地址URL的模板变量。例如:Java代码RequestMapping(value=/owners/ownerId,method=RequestMethod.GET)public String findOw

7、ner(PathVariable String ownerId, Modelmodel) Owner owner = ownerService.findOwner(ownerId); model.addAttribute(owner, owner); return displayOwner;2.PathVariable用于地址栏使用xxx模版变量时使用。如果RequestMapping没有定义类似/ownerId ,这种变量,则使用在方法中PathVariable会报错。ModelAttribute1.应用于方法参数,参数可以在页面直接获取,相当于request.setAttribute(,)

8、2.应用于方法,将任何一个拥有返回值的方法标注上 ModelAttribute,使其返回值将会进入到模型对象的属性列表中.3.应用于方法参数时ModelAttribute(xx),须关联到Object的数据类型,基本数据类型 如:int,String不起作用例如:Java代码ModelAttribute(items)/向模型对象中添加一个名为items的属性public List populateItems() List lists = new ArrayList(); lists.add(item1); lists.add(item2); return lists;RequestMappin

9、g(params = method=listAllBoard)public String listAllBoard(ModelAttribute(currUser)User user,ModelMap model) bbtForumService.getAllBoard(); /在此访问模型中的items属性 System.out.println(model.items: + (List)model.get(items).size(); return listBoard;在 处,通过使用 ModelAttribute 注解,populateItem() 方法将在任何请求处理方法执行前调用,Sp

10、ring MVC 会将该方法返回值以“items”为名放入到隐含的模型对象属性列表中。所以在 处,我们就可以通过 ModelMap 入参访问到 items 属性,当执行 listAllBoard() 请求处理方法时, 处将在控制台打印出“model.items:2”的信息。当然我们也可以在请求的视图中访问到模型对象中的 items 属性。ResponseBody这个注解可以直接放在方法上,表示返回类型将会直接作为HTTP响应字节流输出(不被放置在Model,也不被拦截为视图页面名称)。可以用于ajax。RequestParamRequestParam是一个可选参数,例如:RequestPara

11、m(id) 注解,所以它将和URL所带参数 id进行绑定如果入参是基本数据类型(如 int、long、float 等),URL 请求参数中一定要有对应的参数,否则将抛出org.springframework.web.util.NestedServletException 异常,提示无法将 null 转换为基本数据类型.RequestParam包含3个配置 RequestParam(required = ,value=,defaultValue = )required :参数是否必须,boolean类型,可选项,默认为truevalue: 传递的参数名称,String类型,可选项,如果有值,对应

12、到设置方法的参数defaultValue:String类型,参数没有传递时为参数默认指定的值SessionAttributes session管理Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性。这一功能是通过类定义处标注 SessionAttributes 注解来实现的。SessionAttributes 只能声明在类上,而不能声明在方法上。例如SessionAttributes(currUser) / 将ModelMap 中属性名为currUser 的属性SessionA

13、ttributes(attr1,attr2)SessionAttributes(types = User.class)SessionAttributes(types = User.class,Dept.class)SessionAttributes(types = User.class,Dept.class,value=attr1,attr2)CookieValue 获取cookie信息RequestHeader 获取请求的头部信息使用注解来构造IoC容器用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册。如:在base-package指明一个包1

14、 表明cn.gacl.java包及其子包中,如果某个类的头上带有特定的注解【Component/Repository/Service/Controller】,就会将这个对象作为Bean注册进Spring容器。也可以在中指定多个包,如:1 多个包逗号隔开。1、ComponentComponent是所有受Spring管理组件的通用形式,Component注解可以放在类的头上,Component不推荐使用。2、ControllerController对应表现层的Bean,也就是Action,例如:1 Controller2 Scope(prototype)3 public class UserAct

15、ion extends BaseAction4 5 使用Controller注解标识UserAction之后,就表示要把UserAction交给Spring容器管理,在Spring容器中会存在一个名字为userAction的action,这个名字是根据UserAction类名来取的。注意:如果Controller不指定其value【Controller】,则默认的bean名字为这个类的类名首字母小写,如果指定value【Controller(value=UserAction)】或者【Controller(UserAction)】,则使用value作为bean的名字。这里的UserAction还

16、使用了Scope注解,Scope(prototype)表示将Action的范围声明为原型,可以利用容器的scope=prototype来保证每一个请求有一个单独的Action来处理,避免struts中Action的线程安全问题。spring默认scope是单例模式(scope=singleton),这样只会创建一个Action对象,每次访问都是同一Action对象,数据不安全,struts2是要求每次次访问都对应不同的Action,scope=prototype可以保证当有请求的时候都创建一个Action对象3、 ServiceService对应的是业务层Bean,例如:1 Service(u

17、serService)2 public class UserServiceImpl implements UserService 3 4 Service(userService)注解是告诉Spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫做userService,这样当Action需要使用UserServiceImpl的的实例时,就可以由Spring创建好的userService,然后注入给Action:在Action只需要声明一个名字叫“userService”的变量来接收由Spring注入的userService即可,具体代码如下:1 / 注入

18、userService2 Resource(name = userService)3 private UserService userService;注意:在Action声明的“userService”变量的类型必须是“UserServiceImpl”或者是其父类“UserService”,否则由于类型不一致而无法注入,由于Action中的声明的“userService”变量使用了Resource注解去标注,并且指明了其name = userService,这就等于告诉Spring,说我Action要实例化一个“userService”,你Spring快点帮我实例化好,然后给我,当Spring

19、看到userService变量上的Resource的注解时,根据其指明的name属性可以知道,Action中需要用到一个UserServiceImpl的实例,此时Spring就会把自己创建好的名字叫做userService的UserServiceImpl的实例注入给Action中的“userService”变量,帮助Action完成userService的实例化,这样在Action中就不用通过“UserService userService = new UserServiceImpl();”这种最原始的方式去实例化userService了。如果没有Spring,那么当Action需要使用Use

20、rServiceImpl时,必须通过“UserService userService = new UserServiceImpl();”主动去创建实例对象,但使用了Spring之后,Action要使用UserServiceImpl时,就不用主动去创建UserServiceImpl的实例了,创建UserServiceImpl实例已经交给Spring来做了,Spring把创建好的UserServiceImpl实例给Action,Action拿到就可以直接用了。Action由原来的主动创建UserServiceImpl实例后就可以马上使用,变成了被动等待由Spring创建好UserServiceIm

21、pl实例之后再注入给Action,Action才能够使用。这说明Action对“UserServiceImpl”类的“控制权”已经被“反转”了,原来主动权在自己手上,自己要使用“UserServiceImpl”类的实例,自己主动去new一个出来马上就可以使用了,但现在自己不能主动去new“UserServiceImpl”类的实例,new“UserServiceImpl”类的实例的权力已经被Spring拿走了,只有Spring才能够new“UserServiceImpl”类的实例,而Action只能等Spring创建好“UserServiceImpl”类的实例后,再“恳求”Spring把创建好的

22、“UserServiceImpl”类的实例给他,这样他才能够使用“UserServiceImpl”,这就是Spring核心思想“控制反转”,也叫“依赖注入”,“依赖注入”也很好理解,Action需要使用UserServiceImpl干活,那么就是对UserServiceImpl产生了依赖,Spring把Acion需要依赖的UserServiceImpl注入(也就是“给”)给Action,这就是所谓的“依赖注入”。对Action而言,Action依赖什么东西,就请求Spring注入给他,对Spring而言,Action需要什么,Spring就主动注入给他。4、 RepositoryReposit

23、ory对应数据访问层Bean ,例如:1 Repository(value=userDao)2 public class UserDaoImpl extends BaseDaoImpl 3 4 Repository(value=userDao)注解是告诉Spring,让Spring创建一个名字叫“userDao”的UserDaoImpl实例。当Service需要使用Spring创建的名字叫“userDao”的UserDaoImpl实例时,就可以使用Resource(name = userDao)注解告诉Spring,Spring把创建好的userDao注入给Service即可。1 / 注入userDao,从数据库中根据用户Id取出指定用户时需要用到2 Resource(name = userDao)3 private BaseDao userDao;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1