applicationContext.xml詳解
阿新 • • 發佈:2020-07-15
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"/>