<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 14, comments - 15, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Spring web應用下方便的獲得bean(轉)

    Posted on 2009-01-06 13:27 析木 閱讀(1111) 評論(0)  編輯  收藏 所屬分類: Spring

            如果我們的系統不是分布式的(在分布式里,我一般自己加載spring的配置文件),不是一般的application,通過自己加載Spring的配置文件的方式。而是一般的web應用,我們通過在web.xml里配置spring的配置文件。我們怎么方便的得到一個Bean的實例呢?當然,web應用啟動后,它已經創建好一個WebApplicationContext(這個是接口,其實也是ApplicationContext類型的,因為WebApplicationContext繼承自ApplictionContext這個接口)類型的實例對象,通過org.springframework.web.context.support.WebApplicationContextUtils里的
    getWebApplicationContext(ServletContext sc)可以得到這個對象的引用(這個就像我們一般的java application下得到ApplicationContext類型的引用一樣),我們就可以通過它的getBean方法得到我們的bean實例了。但是這里有個問題getWebApplicationContext(ServletContext sc)這個方法的參數ServletContext代表的是你web應用的環境,也就是說,也就是說web應用環境下特有的。這個時候如果你想得到一個bean的話,必須要有這個ServletContext對象存在,如果你每個類里都寫一個方法來接受ServletContext對象,從而得到WebApplicationContext類型實例的引用,之后再得到bean,進行你要的操作,這個是不是很麻煩?這個不是要寫很多代碼么?我覺得可以把獲得bean的這個操作的功能代碼放在一個Servlet里,讓這個Servlet在web應用啟動的時候加載,我們之后把這個Servlet當作普通類使用,調用里面的getBean方法就可以了。這個servlet的代碼如下:

     

    package com.nstc.cti.event;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;

    import org.springframework.web.context.WebApplicationContext;
    import org.springframework.web.context.support.WebApplicationContextUtils;

    public class GetBean extends HttpServlet {

        
    private static WebApplicationContext context;

        
    public void init() throws ServletException {
            context 
    = WebApplicationContextUtils.getWebApplicationContext(this
                    .getServletContext());
        }


        
    public static Object getBean(String id) {
            Object bean 
    = context.getBean(id);
            
    return bean;
        }

    }

    web.xml配置里:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns
    ="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    >
     
    <!-- Spring的配置 -->
      
    <context-param>
            
    <param-name>contextConfigLocation</param-name>
            
    <param-value>/WEB-INF/beans.xml</param-value>
        
    </context-param>
        
    <servlet>
            <servlet-name>springInitServlet</servlet-name>
            <servlet-class>
                org.springframework.web.context.ContextLoaderServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
      <servlet>

        
    <servlet-name>GetBeanServlet</servlet-name>
        
    <servlet-class>com.nstc.cti.event.GetBean</servlet-class>
          
    <load-on-startup>3</load-on-startup>
      
    </servlet>
       
    <!--Spring配置結束  -->
      
    <servlet-mapping>
        
    <servlet-name>GetBeanServlet</servlet-name>
        
    <url-pattern>/servlet/GetBeanServlet</url-pattern>
      
    </servlet-mapping>
     
      
    <welcome-file-list>
        
    <welcome-file>index.jsp</welcome-file>
      
    </welcome-file-list>
    </web-app>

    紅色也可以為:

        <listener>
            
    <listener-class>
                org.springframework.web.context.ContextLoaderListener
            
    </listener-class>
        
    </listener>



    使用示例:

    假使我有一個Person的類,屬性有name和age,在spring配置文件里配置的id為“person”

    你在你的servlet或者jsp想得到這個實例的時候,直接這么做就可以了:

    Person person=(Person)GetBeanServlet.getBean("person");


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    我要啦免费统计
    主站蜘蛛池模板: 亚洲人成网站18禁止| 免费一级做a爰片性色毛片| 亚洲国产精品一区二区第一页| 免费无码又爽又黄又刺激网站| 韩国欧洲一级毛片免费| 亚洲日韩国产AV无码无码精品| 免费看美女被靠到爽| 亚洲人成人网站18禁| 暖暖免费高清日本一区二区三区| 亚洲AV色欲色欲WWW| 国产福利免费观看| 五月天国产成人AV免费观看| 久久久久国产亚洲AV麻豆 | 亚洲成a人片在线观看无码专区| 中国一级特黄的片子免费| 亚洲精品成人无码中文毛片不卡| 成全在线观看免费观看大全| 久久久亚洲精品国产| 无码国产精品一区二区免费虚拟VR| 亚洲日本久久一区二区va| 精品剧情v国产在免费线观看 | 免费网站看av片| 亚洲邪恶天堂影院在线观看| 国产成人精品免费视频动漫| 亚洲精品色播一区二区| 亚洲精品国产日韩无码AV永久免费网| 岛国精品一区免费视频在线观看 | 天天干在线免费视频| 久久久久亚洲国产AV麻豆| 国产乱辈通伦影片在线播放亚洲| 成人网站免费看黄A站视频| 亚洲国产综合人成综合网站00| 免费观看的a级毛片的网站| 72pao国产成视频永久免费| 久久亚洲精品成人777大小说| 免费A级毛片无码无遮挡内射| 亚洲av综合日韩| 亚洲午夜久久久精品影院| 免费看AV毛片一区二区三区| 中文毛片无遮挡高清免费| 久久精品国产亚洲av日韩|