SSM整合

来源:互联网 发布:淘宝助理查询快递单号 编辑:程序博客网 时间:2024/06/15 16:04

SSM整合

一、导入相应的jar包

  1. Spring相关

    <!--核心包--><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.12.RELEASE</version></dependency><!--第三方orm框架--><dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.3.12.RELEASE</version></dependency><!--事物管理--><dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.3.12.RELEASE</version></dependency><!--切面编程包--><dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>4.3.12.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.12.RELEASE</version></dependency>
  2. SpringMVC

    <!--spring mvc--><dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.12.RELEASE</version></dependency>
  3. MyBatis

    <!--MyBatis核心包--><dependency>    <groupId>org.mybatis</groupId>    <artifactId>mybatis</artifactId>    <version>3.4.5</version></dependency> <!--MyBatis 对spring支持--><dependency>   <groupId>org.mybatis</groupId>   <artifactId>mybatis-spring</artifactId>   <version>1.3.1</version></dependency>
  4. druid连接池与mysql驱动

    <!--druid连接池池--><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.4</version></dependency><!--mysql driver--><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.42</version></dependency>
  5. json数据

    <!--fastjsion 需要配置--><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version></dependency><!-- 或者使用jackson 默认无需配置--><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version></dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version></dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version></dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version></dependency>
  6. 文件上传

    <dependency>     <groupId>commons-fileupload</groupId>     <artifactId>commons-fileupload</artifactId>     <version>1.3.3</version>   </dependency>

第二步、Spring+Mybatis整合

1、说明

  1. 配置数据库相关参数properties的属性:通过${}来获取属性值
  2. 数据库连接池
  3. 配置SqlSessionFactory对象 这一步非常重要。把entity扫面和mapper.xml扫描配置进去
    1. 配置扫描DAO接口包 目的:动态实现DAO接口,并注入到Spring容器中,最能节省工作量的配置

2、整合步骤

  1. applicationContext.xml

    <context:component-scan base-package="com.werner.ssm"/>

    备注

    1. <context:component-scan>扫描和@Component相关的注解。其中包括@Controller,@Service,@Repository等,这些都是从@Component中继承而来的;并且完成对应注解内容的注入,也就是说这个标签它涵盖了下面这个标签的功能。2 . <context:annotation-config> 扫描和@Autowired相关、相似的注解。其中包括@Required,@Autowired等等,这些标签有些是JSR规范的,所以Java原生的辅助注解。2. <mvn:annotation-driven> 扫描Java配置MVC的部分,官网的内容指示的是:@EnableWebMvc,@Configuration修饰的一个类,等同于编程式声明。然后扫这个类就知道了mvc的配置,如果用了xml根本不需
  2. spring-mybatis.xml

    <!--1.配置数据库相关参数   properties的属性:通过${}来获取属性值   --><context:property-placeholder location="classpath:/config/jdbc.properties"/>
    <!--3 连接池配置--><!--在上面的配置中,通常你需要配置url、username、password,maxActive这三项。      Druid会自动跟url识别驱动类名,如果连接的数据库非常见数据库,配置属性driverClassName      asyncInit是1.1.4中新增加的配置,如果有initialSize数量较多时,打开会加快应用启动时间      --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"     init-method="init"     destroy-method="close"> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="filters" value="stat"/> <property name="maxActive" value="20"/> <property name="initialSize" value="1"/> <property name="maxWait" value="60000"/> <property name="minIdle" value="1"/> <property name="timeBetweenEvictionRunsMillis" value="60000"/> <property name="minEvictableIdleTimeMillis" value="300000"/> <property name="testWhileIdle" value="true"/> <property name="testOnBorrow" value="false"/> <property name="testOnReturn" value="false"/> <property name="poolPreparedStatements" value="true"/> <property name="maxOpenPreparedStatements" value="20"/> <property name="asyncInit" value="true"/></bean>
    <!--3.配置SqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" > <!-- 注入数据库连接池 --> <property name="dataSource" ref="dataSource"/> <!-- 配置MyBatis全局配置文件:mybatis-config.xml --> <property name="configLocation" value="classpath:/config/mybatis-config.xml"/> <!-- 扫描entity包 使用别名 --> <property name="typeAliasesPackage" value="com.werner.ssm.domain.entity"/> <!-- 扫描sql配置文件:mapper需要的xml文件 --> <!-- 这句配置mapper配置文件的位置 如果采用注解的方式这句可以省去 --> <property name="mapperLocations" value="classpath:mappers/*.xml"/></bean>
    <!--4  Mapper接口所在包名,Spring自动扫描 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"     p:basePackage="com.werner.ssm.mapper"     p:sqlSessionFactoryBeanName="sqlSessionFactory"     />

第三步、SpringMVC整合

1、说明

1.1、主要配置

  1. 注解的启动
  2. 自动扫描控制器,
  3. 视图模式,
  4. 静态资源的处理

2.1、其它配置

  1. 配置文件上传
  2. 第三方json整合(fastjson)
  3. 避免IE执行AJAX时,返回JSON出现下载文件

2、整合步骤

2.1、spring-mvc.xml

  1. 注解模式

    <!-- 1.开启SpringMVC注解模式 --><!-- 简化配置: 1>自动注册DefaultAnootationHandlerMapping,AnotationMethodHandlerAdapter 2>提供一些列:数据绑定,数字和日期的format @NumberFormat, @DateTimeFormat, xml,json默认读写支持 --><mvc:annotation-driven />
  2. 自动扫描控制器

    <!--由子容器扫描装配了@Service 注解的实例。spring的context是父子容器,由ServletContextListener加载spring配置文件产生的是父容器,springMVC加载配置文件产生的是子容器,子容器对Controller进行扫描装配时装配了@Service注解的实例(@Controller 实例依赖@Service实例),而该实例理应由父容器进行初始化以保证事务的增强处理,所以此时得到的将是原样的Service(没有经过事务加强处理,故而没有事务处理能力)--><context:component-scan base-package="com.werner.ssm"> <context:exclude-filter type="annotation"  expression="org.springframework.stereotype.Service"/></context:component-scan>
  3. 静态资源处理

    <!-- 2.静态资源默认servlet配置 1> 加入对静态资源的处理:js,gif,png,pdf,word    3>允许使用"/"做整体映射--><mvc:default-servlet-handler/>
  4. 视图转化器

    <!-- 3.配置jsp 显示ViewResolver --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/></bean>
  5. 文件上传配置

       <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->     <bean id="multipartResolver"           class="org.springframework.web.multipart.commons.CommonsMultipartResolver">           <!-- 默认编码 -->         <property name="defaultEncoding" value="utf-8" />           <!-- 文件大小最大值 -->         <property name="maxUploadSize" value="10485760000" />           <!-- 内存中的最大值 -->         <property name="maxInMemorySize" value="40960" />       </bean> 
  6. fastjson数据整合

       <mvc:annotation-driven />   <mvc:annotation-driven>       <mvc:message-converters>           <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">               <!--避免IE执行AJAX时,返回JSON出现下载文件,指定字符集-->               <property name="supportedMediaTypes" value="application/json;charset=UTF-8"/>               <property name="fastJsonConfig">                   <bean class="com.alibaba.fastjson.support.config.FastJsonConfig">                       <!--指定默认输出的日期格式-->                       <property name="dateFormat" value="yyyy-MM-dd HH:mm:ss"/>                       <!--序列化对象配置-->                       <property name="serializerFeatures">                           <array>                               <!--输出key时是否使用双引号,默认为true-->                               <value>QuoteFieldNames</value>                               <!--将JavaBean序列化为带格式的JSON文本-->                               <value>PrettyFormat</value>                               <!--是否输出值为null的字段,默认为false-->                               <value>WriteMapNullValue</value>                               <!--List字段若为null,输出[],而非null-->                               <value>WriteNullListAsEmpty</value>                               <!--数值字段若为null,输出0,而非null-->                               <value>WriteNullNumberAsZero</value>                               <!--字符类型字段若为null,输出”“,而非null-->                               <value>WriteNullStringAsEmpty</value>                               <!--Boolean字段若为null,输出false,而非null-->                               <value>WriteNullBooleanAsFalse</value>                               <!--日期格式化-->                               <value>WriteDateUseDateFormat</value>                           </array>                       </property>                   </bean>               </property>           </bean>       </mvc:message-converters>   </mvc:annotation-driven>
  7. 避免IE执行AJAX时,返回JSON出现下载文件

    <!--Jackson2 避免IE执行AJAX时,返回JSON出现下载文件  -->  <bean id="mappingJacksonHttpMessageConverter"    class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes">   <list>     <value>text/html;charset=UTF-8</value>   </list> </property></bean>  

2.2、web.xml

  1. 注册

      <!--注册springMVC-->   <servlet>       <servlet-name>dispatch</servlet-name>       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>       <init-param>           <param-name>contextConfigLocation</param-name>           <param-value>classpath:spring-*.xml</param-value>       </init-param>       <load-on-startup>1</load-on-startup>   </servlet>   <servlet-mapping>       <servlet-name>dispatch</servlet-name>       <url-pattern>/</url-pattern>   </servlet-mapping>

原创粉丝点击