Spring配置說明

anh6發表於2017-12-19

Spring的配置,主要包含web.xml,applicationContext.xml配置。

web.xml配置

對於web專案,容器(Tomcat,JBoss等)啟動時最先會掃描web.xml檔案,讀取該檔案中的配置資訊並初始化。
web.xml中,主要配置Listener,Filter(及filter-mapping),Servlet(及servlet-mapping),以及全域性引數(context-param)。容器首先會建立ServletContext上下文,用於這個WEB專案所有部分共享。

ServletContext application = ServletContextEvent.getServletContext();
context-param<值> = application.getInitParameter("context-param<鍵>");

內容的載入順序:<context-param> <listener> <filter> <servlet>。
如果採用Spring框架,則在web.xml中主要配置:
1)ContextLoaderListener。以及Spring配置檔案地址,用於該Listener的初始化(容器會建立ServletContext,contextInitialized)。(如果沒有指定配置檔案,則預設從/WEB-INF/下載入applicationContext.xml)。該Listener啟動Spring。
2)SpringMVC的分發器DispatcherServlet。在第一次請求時例項化,將請求分發給Spring的Controller處理。在Controller中,通過@RequestMapping註解,對映URL請求和Controller方法。

applicationContext.xml配置

1)引入屬性配置檔案。這些配置檔案配置的值,在bean例項化時可以通過{paramkey}方式使用。引入示例:

<bean id="propertyConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">    
    <property name="location">    
        <value>classpath:jdbc.properties</value>
    </property>
</bean>

2)配置component-scan,指明通過註解標識的Controller、Service以及Dao層的類路徑。通過註解標識的類(@Repository、@Service、@Controller、@Component),無需在配置檔案中配置bean,也可例項化。

<context:component-scan base-package="com.xxx">   
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />   
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

3)配置bean,包含資料庫的dataSource,sessionFactory等,以及自定義bean。一般配置第三方包中的bean,自定義的bean可以通過類註解實現。
4)AOP配置,包含定義事務規則;
5)其他還有websocket配置,dubbo配置,activemq配置,redis配置,schedule配置等。

SpringMVC配置

可以在web.xml中指定配置檔名稱,如:

<servlet>
    <servlet-name>springmvc</servlet-name>   
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>   
    <init-param>      
        <param-name>contextConfigLocation</param-name>      
        <param-value>classpath:applicationContext-mvc.xml</param-value>   
    </init-param>   
    <load-on-startup>1</load-on-startup>   
    <async-supported>true</async-supported>
</servlet>
<servlet-mapping>   
    <servlet-name>springmvc</servlet-name>   
    <url-pattern>/</url-pattern>
</servlet-mapping>

1)配置Model和View。在SpringMVC中通過Controller返回的資料會被包裝在ModelAndView這個類裡。此類中包含有返回的具體資料以及返回的資料指向的URL。
2)配置不需要通過Controller處理的資源。框架中,所有的請求都會通過Spring轉發器(Dispatcher)攔截,然後轉到Controller層處理,但是有些資原始檔的訪問(比如圖片、JS、CSS等檔案)不需要經過Controller處理,則可通過mvc:resources實現。如:
<mvc:resources mapping=”/assets/**” location=”/assets/” />
3)其他Spring配置。

相關文章