【今日感悟】
Spring SpringMVC Mybatis ,简称ssm
Spring整合SpringMVC
Spring整合Mybatis
单独搭建Spring开发环境(导入依赖时注意spring的依赖包版本要统一)
单独搭建SpringMVC开发环境
Spring整合SpringMVC
单独搭建mybatis环境
Spring整合Mybatis**[ssm整合完成]
1.Spring整合SpringMVC:
<!-- 配置spring上下文监听器 : ContextLoaderListener,用于加载applicationContext.xml -->
<!--
加载的路径问题:
1)默认情况下,会自动读取WEB-INF目录名称叫applicationContext.xml
2)修改ContextLoaderListener加载的路径
添加contextConfigLocation的上下文参数: contextConfigLocation
-->
<!-- 上下文参数 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2.Spring整合Mybatis:
<!-- 加载jdbc.properties -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 创建数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- spring整合mybatis -->
<!-- 由spring创建SqlSessionFactory对象,来自于mybatis-spring整合包 -->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据源 -->
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- spring扫描Dao接口的映射配置 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- dao接口扫描目录 -->
<property name="basePackage" value="com.it.dao"/>
</bean>
</beans>
3.spring事务
<!-- spring声明式事务 -->
<!-- 1.事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 2. 事务通知-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 事务特征 -->
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" isolation="DEFAULT"/>
</tx:attributes>
</tx:advice>
<!-- 3. 事务切面-->
<aop:config>
<aop:pointcut id="pt" expression="execution(* com.itheima.service.impl.*ServiceImpl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/>
</aop:config>