SSM整合
Posted danman
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSM整合相关的知识,希望对你有一定的参考价值。
配置信息:
1.web.xml的配置信息
1 <!-- 上下文的位置 --> 2 <context-param> 3 <param-name>contextConfigLocation</param-name> 4 <param-value>classpath:applicationContext-*.xml</param-value> 5 </context-param> 6 <!-- Spring的监听器 --> 7 <listener> 8 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 9 </listener> 10 11 12 <!-- POST提交过滤器 UTF-8 --> 13 <filter> 14 <filter-name>encoding</filter-name> 15 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 16 <init-param> 17 <param-name>encoding</param-name> 18 <param-value>UTF-8</param-value> 19 </init-param> 20 </filter> 21 22 <filter-mapping> 23 <filter-name>encoding</filter-name> 24 <url-pattern>*.action</url-pattern> 25 </filter-mapping> 26 <!-- 前端控制器 --> 27 <servlet> 28 <servlet-name>crm</servlet-name> 29 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 30 <init-param> 31 <param-name>contextConfigLocation</param-name> 32 <!-- 此处不配置 默认找 /WEB-INF/[servlet-name]-servlet.xml --> 33 <param-value>classpath:springmvc.xml</param-value> 34 </init-param> 35 <load-on-startup>1</load-on-startup> 36 </servlet> 37 <servlet-mapping> 38 <servlet-name>crm</servlet-name> 39 <!-- 1:*.do *.action 拦截以.do结尾的请求 (不拦截 jsp png jpg .js .css) 2:/ 拦截所有请求 40 (不拦截.jsp) 建议使用此种 方式 (拦截 .js.css .png) (放行静态资源) 3:/* 拦截所有请求(包括.jsp) 此种方式 不建议使用 --> 41 <url-pattern>*.action</url-pattern> 42 </servlet-mapping>
2.springmvc的配置信息
1 <!-- 配置 读取properties文件 jdbc.properties --> 2 <context:property-placeholder location="classpath:resource.properties" /> 3 4 <context:component-scan base-package="com.hero.controller" /> 5 <!-- 配置处理器映射器 适配器 --> 6 <mvc:annotation-driven /> 7 <!-- 配置视图解释器 jsp --> 8 <bean id="jspViewResolver" 9 class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 10 <property name="prefix" value="/WEB-INF/jsp/" /> 11 <property name="suffix" value=".jsp" /> 12 </bean>
注意:对于controller层所需要用到的外部文件需在springmvc的配置文件中来进行配置,这样才能被controller层所读取!
3.spring的配置文件
(1)applicationContext-dao.xml
1 <!-- 配置 读取properties文件 jdbc.properties --> 2 <context:property-placeholder location="classpath:jdbc.properties" /> 3 4 <!-- 配置 数据源 --> 5 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> 6 <!-- 驱动 --> 7 <property name="driverClassName" value="${jdbc.driver}" /> 8 <!-- url --> 9 <property name="url" value="${jdbc.url}" /> 10 <!-- 用户名 --> 11 <property name="username" value="${jdbc.username}" /> 12 <!-- 密码 --> 13 <property name="password" value="${jdbc.password}" /> 14 </bean> 15 16 <!-- 配置 Mybatis的工厂 --> 17 <bean class="org.mybatis.spring.SqlSessionFactoryBean"> 18 <!-- 数据源 --> 19 <property name="dataSource" ref="dataSource" /> 20 <!-- 配置Mybatis的核心 配置文件所在位置 --> 21 <property name="configLocation" value="classpath:SqlMapConfig.xml" /> 22 <!-- 配置pojo别名 --> 23 <property name="typeAliasesPackage" value="com.hero.pojo"></property> 24 </bean> 25 26 <!-- 配置 1:原始Dao开发 接口实现类 Mapper.xml 三个 2:接口开发 接口 不写实现类 Mapper.xml 二个 (UserDao、ProductDao 27 、BrandDao。。。。。。。) 3:接口开发、并支持扫描包的权限名, 写在此包下即可被扫描到 --> 28 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 29 <property name="basePackage" value="com.hero.dao" /> 30 </bean>
注意:对于引入连接池的配置文件,应该在spring 的配置文件中来进行相关配置,才能被spring来进行管理。
springMVC容器与spring容器的区别:
1.两者都是容器,但是两者的关系属于父子容器的关系,spring容器为父,springMVC为子。子容器可以引用父容器中公共的对象,父容器不能引用子类容器中的内容
2.外部的配置信息相当于私有的配置,是不能被共享的,比如连接数据库的外部配置信息需要配置在spring的配置文件中,属于spring容器私有的配置
4.applicationContext-service.xml
1 <!-- 配置 扫描 @Service --> 2 <context:component-scan base-package="com.hero.service"/>
5.applicationContext-trans.xml
1 <!-- 事务管理器 --> 2 <bean id="transactionManager" 3 class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 4 <!-- 数据源 --> 5 <property name="dataSource" ref="dataSource" /> 6 </bean> 7 <!-- 通知 --> 8 <tx:advice id="txAdvice" transaction-manager="transactionManager"> 9 <tx:attributes> 10 <!-- 传播行为 --> 11 <tx:method name="save*" propagation="REQUIRED" /> 12 <tx:method name="insert*" propagation="REQUIRED" /> 13 <tx:method name="add*" propagation="REQUIRED" /> 14 <tx:method name="create*" propagation="REQUIRED" /> 15 <tx:method name="delete*" propagation="REQUIRED" /> 16 <tx:method name="update*" propagation="REQUIRED" /> 17 <tx:method name="find*" propagation="SUPPORTS" read-only="true" /> 18 <tx:method name="select*" propagation="SUPPORTS" read-only="true" /> 19 <tx:method name="get*" propagation="SUPPORTS" read-only="true" /> 20 </tx:attributes> 21 </tx:advice> 22 <!-- 切面 --> 23 <aop:config> 24 <aop:advisor advice-ref="txAdvice" 25 pointcut="execution(* com.hero.service.*.*(..))" /> 26 </aop:config>
以上是关于SSM整合的主要内容,如果未能解决你的问题,请参考以下文章
520前,我放弃陪女朋友时间,被迫写代码:“SSM框架整合+excel文件上传到数据库+数据更新“