日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

springmvc中获取request对象,加载biz(service)的方法

發(fā)布時間:2024/4/17 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springmvc中获取request对象,加载biz(service)的方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

獲取request對象:

首先配置web.xml文件-->

?

[html]?view plaincopy
  • <listener>??
  • ????????<listener-class>??
  • ????????????org.springframework.web.context.request.RequestContextListener??
  • ????????</listener-class>??
  • ????</listener>??

  • 然后在程序中獲取:

    ?

    代碼:

    ?

    [java]?view plaincopy
  • HttpServletRequest?request?=?((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();??
  • ?

    在Controller中獲取biz很簡單,注解配置都行,一般用注解,@Autowired就搞定了,可是有時在普通java類中想獲取到biz很麻煩,所以可以用下面的方式加載。

    在普通類中加載biz,用SpringApplicationContext.getBean(xx.class);

    ?

    ?

    代碼:

    ?

    [java]?view plaincopy
  • IKeyCodeBiz?keyCodeBiz?=?SpringApplicationContext.getBean(IKeyCodeBiz.class);??
  • ?

    版本二

    利用Spring隨時隨地獲得Request和Session

    一、準(zhǔn)備工作:

    在web.xml中添加??

    ?

    <listener> <listener-class> org.springframework.web.context.request.RequestContextListener</listener-class> </listener>


    ?

    ?

    ?


    二、使用方法:?
    1、方法一:通過代碼實現(xiàn)?

    HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();




    2、方法二:通過注解實現(xiàn):?

    ?

    ?

    @Autowired private HttpServletRequest request;

    三、關(guān)于RequestContextListener的背景知識: 基于LocalThread將HTTP request對象綁定到為該請求提供服務(wù)的線程上。這使得具有request和session作用域的bean能夠在后面的調(diào)用鏈中被訪問到。??

    Request作用域??
    <bean id="loginAction" class="com.foo.LoginAction" scope="request"/>??


    針對每次HTTP請求,Spring容器會根據(jù)loginAction bean定義創(chuàng)建一個全新的LoginAction bean實例,且該loginAction bean實例僅在當(dāng)前HTTP request內(nèi)有效,因此可以根據(jù)需要放心的更改所建實例的內(nèi)部狀態(tài),而其他請求中根據(jù)loginAction bean定義創(chuàng)建的實例,將不會看到這些特定于某個請求的狀態(tài)變化。當(dāng)處理請求結(jié)束,request作用域的bean實例將被銷毀。??

    Session作用域??
    <bean id="userPreferences" class="com.foo.UserPreferences" scope="session"/>??
    針對某個HTTP Session,Spring容器會根據(jù)userPreferences bean定義創(chuàng)建一個全新的userPreferences bean實例,且該userPreferences bean僅在當(dāng)前HTTP Session內(nèi)有效。與request作用域一樣,你可以根據(jù)需要放心的更改所創(chuàng)建實例的內(nèi)部狀態(tài),而別的HTTP Session中根據(jù)userPreferences創(chuàng)建的實例,將不會看到這些特定于某個HTTP Session的狀態(tài)變化。當(dāng)HTTP Session最終被廢棄的時候,在該HTTP Session作用域內(nèi)的bean也會被廢棄掉。??

    global session作用域??

    <bean id="userPreferences" class="com.foo.UserPreferences" scope="globalSession"/>??

    global session作用域類似于標(biāo)準(zhǔn)的HTTP Session作用域,不過它僅僅在基于portlet的web應(yīng)用中才有意義。Portlet規(guī)范定義了全局Session的概念,它被所有構(gòu)成某個portlet web應(yīng)用的各種不同的portlet所共享。在global session作用域中定義的bean被限定于全局portlet Session的生命周期范圍內(nèi)。??

    請注意,假如你在編寫一個標(biāo)準(zhǔn)的基于Servlet的web應(yīng)用,并且定義了一個或多個具有g(shù)lobal session作用域的bean,系統(tǒng)會使用標(biāo)準(zhǔn)的HTTP Session作用域,并且不會引起任何錯誤??
    二、為什么需要額外的配置RequestContextFilter??
    也許會有一個疑問,已經(jīng)通過ContextLoaderListener(或ContextLoaderServlet)將Web容器與Spring容器整合,為什么這里還要用額外的RequestContextListener以支持Bean的另外3個作用域,原因是ContextLoaderListener實現(xiàn)ServletContextListener監(jiān)聽器接口,而ServletContextListener只負(fù)責(zé)監(jiān)聽Web容器的啟動和關(guān)閉的事件。RequestContextFilter實現(xiàn)ServletRequestListener監(jiān)聽器接口,該監(jiān)聽器監(jiān)聽HTTP請求事件,Web服務(wù)器接收的每次請求都會通知該監(jiān)聽器。通過配置RequestContextFilter,Spring容器與Web容器結(jié)合的更加密切。??
    三、作用域依賴問題??

    如果將Web相關(guān)作用域的Bean注入到singleton或prototype的Bean中,這種情況下,需要Spring AOP

    <bean?name="car"?class="com.demo.Car"?scope="request">??

    ????<aop:scoped-proxy/>??

    </bean>??

    <bean?id="boss"?class="com.demo.Boss"?>??

    ???<properrty?name="car"?ref="car"?/>??

    </bean>??

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/Jeely/p/10811949.html

    總結(jié)

    以上是生活随笔為你收集整理的springmvc中获取request对象,加载biz(service)的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。