1. 程式人生 > 實用技巧 >applicationContext.xml詳解

applicationContext.xml詳解

applicationContext.xml作為spring 全域性配置檔案,其配置內容也應該跟其作用相關;

Bean是Spring管理的基本單位,在基於Spring的Java EE應用中,所有的元件都被當成Bean處理,包括資料來源、hibernate的SessionFactory、事務管理器等。

1.beans是applicationContext.xml的根元素,其包含所有子元素;

2.自動掃描,設定使用註解的類所在的包 主要是dao層和service層,剔除controller層註解掃描:

<context:component-scan base-package="zzj.lxy">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

3.配置資料庫相關引數properties的屬性:${url}

<context:property-placeholder location="classpath:porperties/jdbc.properties"/>

4.資料庫連線池

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="maxPoolSize" value="${c3p0.maxPoolSize}"/>
        <property name="minPoolSize" value="${c3p0.minPoolSize}"/>
        <property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}"/>
        <property name="checkoutTimeout" value="${c3p0.checkoutTimeout}"/>
        <property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/>
    </bean>

5.配置SqlSessionFactory物件

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入資料庫連線池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 掃描model包 使用別名 -->
        <property name="typeAliasesPackage" value="zzj.lxy.dao"/>
        <!-- 掃描sql配置檔案:mapper需要的xml檔案 -->
        <property name="mapperLocations" value="classpath:zzj/lxy/dao/*.xml"/>
    </bean>

6.MapperScannerConfigurer掃描包下的mybatis的mapper介面,然後和mybatis的sqlxml對映檔案產生代理物件,最後注入到springIoc容器裡面

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 給出需要掃描Dao介面包 -->
        <property name="basePackage" value="zzj.lxy.dao"/>
    </bean>

7.配置事務管理器

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 注入資料庫連線池 -->
        <property name="dataSource" ref="dataSource"/>
    </bean>

8.配置基於註解的宣告式事務

<tx:annotation-driven transaction-manager="transactionManager"/>