ssm整合
-拷贝相关的jar包
链接:http://pan.baidu.com/s/1kUZLDER 密码:mr6p
-配置web.xml文件
*spring配置文件路径
*监听器:该监听器在服务器启动阶段实例化,解析spring的配置文件;该监听器实现了ServletContextListener接口,在ServletContext
对象创建或者销毁的时候,监听器中的方法会被执行
*解决post请求中文乱码的过滤器
*中央调度器:接收客户端发送的请求,交给对应的处理器进行处理,将处理器返回的结果相应给浏览器客户端
需要指定springMVC配置文件的路径,默认路径为WEB-INF/[servlet-name]-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <!-- Spring 配置文件路劲 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:resource/spring-config.xml</param-value> </context-param> <!-- 监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- post请求字符集过滤器 --> <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> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Springmvc 中央调度器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- SpringMVC配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:resource/springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
-配置spring相关的配置文件
*数据源(连接池c3p0|dbcp)
*sessionFactory
*事务管理器 transactionManager
*通知Advice
*切入
3)ssm集成原理
-ssm集成,其实指的就是spring和mybaits的集成,springMVC本身就是spring的一部分
Spring 和 mybatis 整合
1)首先从MyBatis官网下载mybatis-spring.jar 整合包
2)在Spring配置文件注册SqlSessionFactoryBean,创建SqlSessionFactory
3)注册Dao动态代理扫描器(MapperScannerConfigurer)
/*spring-base.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:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 注册oracle 属性文件 --> <context:property-placeholder location="classpath:resource/jdbc.properties"/> <!-- 数据源:c3p0 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.dirver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- sqlsessionFactory --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- mybatis配置文件位置 --> <property name="configLocation" value="classpath:resource/mybaties.xml"/> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 事务通知 --> <tx:advice id="myAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="*" isolation="DEFAULT" propagation="REQUIRED" rollback-for="java.lang.Exception.class"/> <tx:method name="get*" read-only="true"/> </tx:attributes> </tx:advice> <!-- 切入 --> <aop:config> <aop:advisor advice-ref="myAdvice" pointcut="execution(* com.xiehe.epay.service.*.*(..))"/> </aop:config> </beans>
-spring提供了两个比较重要的功能IOC,AOP
*IOC指的是控制反转(反转的对对象控制的权利) ,mybatis的sessionFactory对象的创建,以及和对象间关系的维护,都是交给IOC容器处理
*AOP指的是面向切面编程 mybatis的事务不需要程序员编写代码处理,只需要做些简单的配置即可
IOC和DI的关系:
IOC控制反转,是一种编程思想;DI依赖注入,是IOC的具体实现.