<servlet-name>Servlet的Name</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<param-name>contextConfigLocation</param-name>
<!-- 读取指定路径下的xml信息(SpringMVC的配置文件)-->
<param-value>classpath:config/spring/mvc-servlet.xml</param-value>
<!--设置一启动就加载SpringMVC的配置文件,创建前端控制器-->
<load-on-startup>1</load-on-startup>
<servlet-name>Servlet的Name</servlet-name>
<!--只有后缀名为.do的请求才会被SpringMVC所拦截-->
<url-pattern>*.do</url-pattern>
<!--配置注解驱动扫描controller包下的文件,使用注解-->
<context:component-scanbase-package="controller"></context:component-scan>
SpringMVC框架,使用注解驱动后,默认映射器,适配器,视图解析器变更
AnnotationMethodHandleAdapter或其子类型.
<!-- 配置文件上传解析器 ,配置后可以使用上传功能,multipartResolver大小写敏感-->
<bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
作用就是在返回视图资源的时候会自动加上/WEB-INF/jsp/ 返回视图的名称 .jsp
<beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix"value="/WEB-INF/jsp/"></property>
<property name="suffix"value=".jsp"></property>
首先用户发出请求,请求经过web.xml,之后进行判断是否为springmvc拦截的路径.如上面所配置的.do,如果是的话则会通过注解所扫描的包去一一匹配相应的请求@RequestMapping("/url"),如果url与用户请求的url一致,则进行业务操作,之后返回一个视图资源,如果配置了视图解析器则还会调用视图解析器,最后返回给用户一个相应的页面
因为SpringMVC和Spring天然整合,所以说不需要配置额外的信息.
配置文件没有固定的命名格式建议使用mybatis.cfg.xml来命名
<!--如果导入外部的properties配置文件的话,需要配置properties标签 可选-->
<propertiesresource="db.properties">这里导入了db.properties的配置文件
<environmentdefault="development">
JDBC- 依赖JDBC技术实现事务管理方式,最底层,ORM框架本身没有事务管理能力
MANAGER-容器管理.如:使用Spring容器管理MyBatis框架的会话工厂.
JTA - java transaction api . java事务开发工具接口.
<transactionManagertype="JDBC"></transactionManager>
配置数据库连接参数的时候, 可以通过XML脚本语法 - ${}配置.
MyBatis提供的解析器,是解析Properties配置文件或Properties对 象实现数据的配置.
<propertyname="driver" value="${mysql.driver}"/>
<property name="url"value="${mysql.url}" />
<propertyname="username" value="${mysql.username}" />
<propertyname="password" value="${mysql.password}" />
<!-- <propertyname="driver" value="com.mysql.jdbc.Driver"/>
<property name="url"value="jdbc:mysql://localhost:3306/mybatis" />
<propertyname="username" value="root" />
<propertyname="password" value="root" /> -->
<mapperresource="User.mapper.xml"/>
配置完MyBatis的会话工厂【mybatis.cfg.xml】后就可以通过代码来创建会话工厂
SqlSessionFactorysqlSessionFactory=null;
SqlSessionFactoryBuilderbuilder=new SqlSessionFactoryBuilder();
InputStreamis=Resources.getResourceAsStream("mybatis.cfg.xml");
sqlSessionFactory=bulider.build(is);
SqlSessionsession=sqlSessionFactory.openSession();
SqlSessionFactory sqlSessionFactory=newSqlSesssionFactoryBuider.builde(Resources.getResourceAsStream("mybatis.cfg.xml"));
SqlSessionsession=new SqlSesssionFactoryBuider.builde(Resources.getResourceAsStream("mybatis.cfg.xml")).openSession();
<select id="statement的名称" resultType="返回值类型">
首先要导入Jar包,mybatis-spring-1.2.1.jar
之后让Spring来管理MyBatis的会话工厂.也就是让Spring自动创建SqlSession
location-读取本地Properties配置文件,定义方式为路径/文件名
可以通配符读取多个配置文件. path/*.properties
相当于原来配置的<properties resource="db.properties">,不过这里可以指定了该配置文件所在的路径
<context:property-placeholderlocation="classpath:config/commons/*.properties"/>
<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url"value="${mysql.url}"></property>
<property name="driverClassName"value="${mysql.driver}"></property>
<property name="username"value="${mysql.username}"></property>
<property name="password"value="${mysql.password}"></property>
<bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource"ref="dataSource"></property>
<property name="mapperLocations">
这里是读取mapper配置文件,但是本次项目使用的是注解开发,所以说这里配置每太大用
<value>classpath:mapper/*.xml</value>
typeAliasesPackage,它一般对应我们的实体类所在的包,这个时候会自动取对应包中不包括包名的简单类名作为包括包名的别名。多个package之间可以用逗号或者分号等来进行分隔。
简单来说就是这样原来需要写entity.User现在配置了这里只要写User就好了
<typeAlias type="entity.User"alias="user"></typeAlias>
<!-- package-自动扫描包中的类型,使用类名作为别名.代替类的全命名 -->
<property name="typeAliasesPackage"value="entity"></property>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName"value="sqlSessionFactory"></property>