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整合的主要内容,如果未能解决你的问题,请参考以下文章

SSM框架整合

SSM 项目整合详细解读

SSM整合

520前,我放弃陪女朋友时间,被迫写代码:“SSM框架整合+excel文件上传到数据库+数据更新“

shiro整合SSM(spring_springmvc_mybatis)

ssm整合redis