SSM整合
需要对mybatis spring springmvc有一些的了解
整合介绍:
需要mybatis-spring整合 然后在加上springmvc就可以
一:mybatis-spring整合:在前面spring快速复习中有介绍这里做代码演示
1.创建ioc容器applicationContext.xml
扫描注解是必要的:这里仅仅扫描service
<context:component-scan base-package="com.itheima.service"></context:component-scan>
2.开始在容器中注入属性
(重点)3.明确主要目的:为了调用动态代理对象
次要目的:配置事务管理器
4.分析动态代理对象的注入容器中 这个类是MapperScannerConfigurer,
1.必须需要(工厂)属性SqlSessionFactoryBean————会自动寻找(不配置也行)
2.需要为dao层接口配置动态代理对象注入属性
5.上面需要SqlSessionFactoryBean所以我们需要提前配置SqlSessionFactoryBean
bean工厂分析:
1.需要数据源
2.需要配置别名(方便书写)
3.若是映射文件和dao文件路径不一致需要指定路径
4.因为数据库名称单词间喜欢用下划线分隔 所以需要配置驼峰命名规则 举例:数据库user_id 属性userId可以自动映射
以下为 将SqlSessionFactoryBean工厂注入容器 代码演示
<!--如果映射文件与dao层接口不在同一目录下 需要手动映射-->
<!--<property name="mapperLocations" value="classpath:com/itheima/dao/*.xml" ></property>-->
<!--需要配置驼峰命名规则-->
<property name="configuration">
<bean class="org.apache.ibatis.session.Configuration">
<property name="mapUnderscoreToCamelCase" value="true"/>
</bean>
</property>
</bean>
6.工厂内容我们观察需要数据源 配置数据源不在这演示 可自行百度
7.这里我们已经完成了主要目的 现在我们来完成次要目的 事务
8.分析 事务:事务需要事务管理器(mybatis的事务管理器是DataSourceTransactionManager) 事务管理器又需要数据源(dataSource)
9.配置事务管理器
<!--事务管理器 需要注入dataSource-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
10.因为我们使用的是注解事务支持 所以需要->开启事务注解驱动
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
注意:transactionManager是固定的 所以在配置事务管理器的时候名字必须一致
二:mybatis-spring-springmvc整合:
分析:因为上面已经将spring-mybatis整合所以这里我们仅仅加入springmvc就哈皮了
同样的我们需要为springmvc创建一个容器spring-mvc.xml
(其实我们可以和上面用同一个 不过为了好区分这里做了分离:注意->分离后两个容器加载后续会有讲解)
1.首先开启包扫描 扫描controller层
2.在容器中配置spring三大组件:处理器适配器 处理器映射器 视图解析器(不过后续我们都是异步请求不需要配视图解析器)
在springMvc配置这个标签会自动帮我们搞定 处理器映射器 处理器适配器 <mvc:annotation-driven></mvc:annotation-driven>
3.这里介绍:“/”会拦除jsp以外的请求因为我们不是前后端分离 (所以需要释放资源)springmvc也是一个注解帮忙搞定
<!--释放静态资源-->
<mvc:default-servlet-handler></mvc:default-servlet-handler>
或者选一个即可
<!-- 释放静态资源 -->
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/img/" mapping="/img/**"/>
4.springmvc容器配置这里已经讲解完了
1.下面配置web.xml核心中央控制器DispatcherServlet
注意这里需要加载spring-mybatis容器和spingmvc容器通过<init-param>标签
这里需要去复习容器的加载三种方式 <import>标签 或写多个xml路径加载
或者创建监听器然后指定文件路径
<!--核心-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
5.web.xml配置编码 通过过滤器来编码格式
<!--编码设置-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>