1.举个例子,以前在写spring的时候如果我们想读取一个类就采用写一个容器,一个类写一个bean,对里面的写了get,set的属性赋值,然后再主方法里面建立一个ApplicationContext容器对象,再getbean()调用这个bean。springMVC如果我新添加了一个实体类,SpringMVC整合mybaties有时怎么发现自己对应的mapper文件的呢?
那就是统一配置,这样所有*.bean.xml就自动加载了。mapper文件是mybaties独有的,spring boot里面就不用加mapper文件了。
<!-- sessionFactory 将spring和mybatis整合 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!--<property name="configLocation" value="classpath:mybatis-config.xml"/>-->
<property name="mapperLocations" value="classpath*:*_bean.xml" />
</bean>
2下面这个扫描Dao下面的文件
<context:component-scan base-package="com.jointem.hrm.dao" />
3下面这个数据源的配置,是C3P0的方式,现在流行的是durid配置,是阿里的配置,他可以跟踪sql语句的状态,包括执行时间,指定在哪个页面执行,对页面执行sql语句加密。
<!-- 数据源c3p0 durid -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="autoCommitOnClose" value="true"/>
<property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/>
<property name="initialPoolSize" value="${cpool.minPoolSize}"/>
<property name="minPoolSize" value="${cpool.minPoolSize}"/>
<property name="maxPoolSize" value="${cpool.maxPoolSize}"/>
<property name="maxIdleTime" value="${cpool.maxIdleTime}"/>
<property name="acquireIncrement" value="${cpool.acquireIncrement}"/>
<property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/>
</bean>