终于有空整理下SSM整合的内容了。
整合思路
Dao
层:
1、SqlMapConfig.xml
,空文件即可,但是需要文件头。
2、applicationContext-dao.xml
a)
数据库连接池
b)
SqlSessionFactory
对象,需要spring
和mybatis
整合包下的。
c)
配置mapper
文件扫描器。
Service
层:
1、applicationContext-service.xml
包扫描器,扫描@service
注解的类。
2、applicationContext-trans.xml
配置事务。
Controller
层:
1、Springmvc.xml
a)
包扫描器,扫描@Controller
注解的类。
b)
配置注解驱动
c)
配置视图解析器
Web.xml
文件:
1、
配置spring
2、
配置前端控制器。
编写mybatis配置文件sqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<package name=""/> <!--给pojo类配置别名 -->
</typeAliases>
<mappers>
<package name=""/>
</mappers>
</configuration>
mybatis与spring整合,applicationContext-dao.xml
//配置数据源
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql:///ssm"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
//配置mybatis的session工厂
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
</bean>
//mapper动态代理要扫描的包
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="配置基本包"></property>
</bean>
配置applicationContext-service.xml
//配置要扫描的包sevice
<context:component-scan base-package="service层所在包"/>
配置springmvc的配置文件springmvc.xml
<!-- 配置要扫描的包 -->
<context:component-scan base-package="controller层所在包"/>
<!-- 处理器映射器
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
处理器适配器
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
一个注解驱动相当于配置上面2个 -->
<mvc:annotation-driven/>
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<!-- 配置后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
配置web.xml文件
配置springmvc前端控制器
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 默认 /WEB-INF/[servlet的名称]-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--
1: *.do *.action 拦截以action结尾的请求 .js .css .png 建议使用此种方式
2: / 拦截所有请求 (不包含.jsp) 包含( .js .css .png) 建议使用此种方式 SSM练习 静态资源放行
3: /* 拦截所有请求 包含.jsp .js .css .png 不建议使用此种方式
-->
<url-pattern>*.action</url-pattern>
</servlet-mapping>
配置spring的监听器
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
配置全局变量
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml</param-value>
</context-param>
如果是post请求,可以配置过滤器
<filter>
<filter-name>encoding</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>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
整合完成,开始编写包结构
controller层要配置注解,@Controller将类的创建交由spring管理
@Autowired自动按类型注入
@RequestMapper配置前端访问地址
ModelAndView包含结果和要跳转的视图