web.xml文件中
web項目啓動時,最先讀取的兩個節點是<context-param>節點和<listener>節點,所以這兩個節點裏面所配置的內容是web項目啓動時最先加載的部分。
<context-param>節點中配置的applicationContext.xml裏面主要是數據庫中的配置信息,以及事物等。
<listener>節點配置的是web請求的監聽器。
applicationContext.xml文件中
<!-- 自動註解除Controller以外的Component -->
<context:component-scan base-package="com.weiluo.example">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 此配置可以讓我們以${xxx}的形式來讀取property.properties裏面的信息 -->
<!-- 配置數據源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<!-- 配置SessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
p:dataSource-ref = "dataSource"
p:configLocation = "classpath:sqlMapConfig.xml" />
<!-- 採用spring與mybatis整合的第二種方法 -->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<!-- 配置事務管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref = "dataSource" />
<!-- MapperScanner配置,自動搜索mapper裏面的對象,並注入 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"
p:basePackage = "com.weiluo.example.entity" />
<!-- 啓動Spring註解事務 -->
<tx:annotation-driven/>
web.xml中的<servlet>節點配置的是與請求處理相關的一些內容,主要是 url路徑處理器,視圖解析器,等等
eg:<!-- url映射攔截器 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="order" value="1" />
</bean>
<!-- 配置數據格式轉換器 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<!-- 開啓controller註解支持 -->
<!-- 注:如果base-package=cn.javass 則註解事務不起作用 TODO 讀源碼 -->
<context:component-scan base-package="com.weiluo.example.controller">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 因爲web-inf目錄下面的靜態資源文件是不能直接通過目錄過去的,所以需要特殊聲明-->
<mvc:resources location="/static/" mapping="/static/**" />
<!-- 視圖解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<!-- 自定義的freemarker標籤 -->
<bean id="blockDirective"
class="com.weiluo.example.freemarker.directive.BlockDirective" />
<!-- freemarker的配置項 -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
另外,一些常常變化的信息習慣於存放在application.properties文件裏面,如:
#oracle version database setting
database=sqlserver
#jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.driver=net.sourceforge.jtds.jdbc.Driver
#jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:jtds:sqlserver://127.0.0.1:1433;databaseName=SpringMyBatisExample
#jdbc.url=jdbc:mysql://localhost:3306/springmvcdemo
jdbc.username=sa
jdbc.password=sasa
#dbcp settings
dbcp.maxIdle=5
dbcp.maxActive=20
到這裏,一個spring mvc的基本框架就已經搭建起來了。
後續再完成數據庫mybatis的配置以及freemarker的配置。