流程图
setting
mybatis 配置文件规则
类型别名配置 ,用来简化路径描述
setting 配置mybatis核心功能
typeHandlers 类型处理器 用来规定将数据库resultset中string类型数据转为其他类型数据的转换规则
映射器(mappers) 加载 mapper.xml用的。 正常没在这里配置。在spring中统一扫描即可
既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语
句了。但是首先我们需要告诉 MyBatis 到哪里去找到这些语句。 Java 在自动查找这方面没有提供一个很好的方法,所以最佳的方式是告诉 MyBatis 到哪里去找映射文件。你可以使用相对于类路径的资源引用, 或完全限定资源定位符(包括 file:/// 的 URL),或类名和包名等。例如:
xml文件的配置
mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<configuration>
<settings>
<setting name="lohimpl" value="STDOUT_LOGGIN"></setting>
</settings>
</configuration>
spring-mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd ">
<context:component-scan base-package="root">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
</beans>
<!-- 引入配置文件。读取属性文件,将里面的kv对加载到是spring容器中 ,class里的是spring读取属性文件的工具-->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc:properties" />
</bean>
<!-- dbcp 数据库连接池 ${} spring el表达式-->
<!-- 数据库连接池只是一个概念。管理数据库连接,有很多数据库连接池工具。tomcat,alibaba,DHCP,dbcp -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- 初始化连接池大小 -->
<property name="initialSize" value="${initialSize}" />
<!-- 连接池最大数量 -->
<property name="maxActive" value="${maxActive}" />
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="${maxIdle}" />
<!-- 连接池最小空闲 -->
<property name="minIdle" value="${minIdle}" />
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="${maxWait}" />
</bean>
<!-- spring 和 mybatis 完美整合 ,不需要mybatis的配置的映射文件,注册 mybatis的会话工厂-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描 mapper。xml文件 -->
<!-- mapper.xml 文件描述要一个社么功能的实现类 -->
<property name="mapperLocations" class="classpath:root/entity/daoimol/*.xml" />
<!-- 上边呢个是自动就扫描了。下边这个是当mubatis有啥需要改动的,在这里改,省的动员soring文件出错 -->
<property name="configLocation" class="classpath:mybatis.xml" />
</bean>
<!-- dao接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="root.dao接口包" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
数据库连接池相关
数据库连接池用
jdbc.properties
driver=oracle.jdbc.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
username=c##zff
password=zff
initialSize=0
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000
这个是配置springMVC用的
spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<!-- 配置model and view -->
<!-- 配置静态资源 -->
<!-- 配置spring容器扫描 -->
<!-- 配置拦截器,比如说文件上传拦截器 -->
<!-- 定义跳转的文件的前后缀 ,视图模式配置
spring配置xml的语法InternalResourceViewResolver创建实例,注入属性prefix和suffix
-->
<mvc:annotation-driven enable-matrix-variables="true" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 欢迎页 -->
<mvc:view-controller path="/" view-name="index"/>
<!--配置JSON转换器(相当于以前的alibaba.fastjson),避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<!-- <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean
class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> -->
<ref bean="mappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>
<!-- 对静态资源的访问,分两种写法 -->
<!--
第一种,匹配静态路径前缀,符合的路径前缀,去访问静态资源,没有的话,匹配handler
<mvc:resources mapping="/js/**" location="resource/js/" />
<mvc:resources mapping="/css/**" location="resource/css/" />
-->
<!--
第二种,允许对静态资源文件的访问 -->
<mvc:default-servlet-handler />
<!-- 添加注解驱动,mvc框架和spring一样,也有自己的容器实现了IOC。
所以能参数注入 ,通过配置,让springmvc只管理controller层-->
<!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
<context:component-scan base-package="root" />
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默认编码 -->
<property name="defaultEncoding" value="UTF-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
</bean>
<bean id="first" class="root.tools.Interceptor"></bean>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/login/interceptor" />
<mvc:exclude-mapping path=""/>
<ref bean="first" />
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/login/interceptor" />
<bean id="second" class="root.tools.Interceptor2"></bean>
</mvc:interceptor>
</mvc:interceptors>
<!-- <bean id="first" class="ss1.tools.interceptor.FirstInterceptor"></bean>
<mvc:interceptors>
配置自定义的拦截器 FirstInterceptor
配置自定义的拦截器 SecondInterceptor
<mvc:interceptor>
配置拦截器作用的路径
<mvc:mapping path="/Demo/login" />
若要配置不起作用的路径,则使用 <mvc:exclude-mapping path=""/>
<ref bean="first"/>
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/权限目录名" />
<bean id="wefwe" class="ss1.tools.interceptor.FirstInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors> -->
</beans>