<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>