zoukankan      html  css  js  c++  java
  • SSM框架的配置Spring+Springmvc +Mybatis

    ssm框架是由spring mvc +spring+mybatis组成

    快速阅读

    通过spring的配置文件spring.xml,在servlet中指定spring mvc的配置文件spring-mvc.xml ,在spring mvc的配置文件中,定义拦截器,以及适配器adapter 和mapping ,以及返回json的的定义 ,并且导入mybatis配置 。 在mybatis的配置文件中定义jdbc的数据库连接。并且用spring 和mybatis进行数据库持久化的映射和配置 。可以用mybatis-generate-ui 工具自动生成

    spring

    Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,有控制反转和依赖注入

    官方网站 https://spring.io/docs

    Mybatis

    数据库持久化框架 和hibernate 一样

    官方网站 http://mybatis.github.io/mybatis-3/

    Servlet

    Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层

    相关的配置

    1.配置web.xml(webapp/WEB-INF/web.xml)

    该文件是spring的默认配置文件在servlet节点中配置spring mvc相关配置及指定的初始文件

    如下指标spring mvc默认配置文件是spring-mvc.xml

    因为Spring中是依赖注入(Dependency Injection)的也叫控制反转(Inversion of Control)。但是也要配置一个重要的servlet,就是前端控制器(DispatcherServlet

    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <async-supported>true</async-supported>
      </servlet>
      
       <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
      
    

    节点servlet-mapping,如果url-pattern 设置是“/” 则dispatcherservlet会拦截所有请求

    其它的一些配置

    <!-- 404错误拦截 -->
      <error-page>
        <error-code>404</error-code>
        <location>/error404.jsp</location>
      </error-page>
      <!-- 500错误拦截 -->
      <error-page>
        <error-code>500</error-code>
        <location>/error500.jsp</location>
      </error-page>
       <!-- 解决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>
      </filter>
      <filter-mapping>
          <filter-name>CharacterEncodingFilter</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>
      <welcome-file-list>
        <welcome-file>welcome.jsp</welcome-file>
      </welcome-file-list>
    

    2.spring-mvc的配置

    <!-- 自动扫描,使SpringMVC认为包下用了@Controller注解的类是控制器 -->
    	<context:component-scan
    		base-package="com.hcb.api" />
    		
    <!-- 输出对象转JSON支持 -->
    	<bean
    		class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    		<property name="messageConverters">
    			<list>
    				<bean
    					class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    					<property name="supportedMediaTypes">
    						<list>
    							<value>text/html;charset=UTF-8</value>
    							<value>text/plain;charset=UTF-8</value>
    							<value>application/json;charset=UTF-8</value>
    						</list>
    					</property>
    				</bean>
    			</list>
    		</property>
    	</bean>
    

    定义拦截器

    <mvc:interceptors>
    		<mvc:interceptor>
    			<mvc:mapping path="/api/**" />
    			<bean class="com.hcb.api.interceptor.SignatureInterceptor">
    				<property name="ignoreUrls">
    					<list>
    						<value>/api/user/login</value>
    						<value>/api/eval/calc</value>
    					</list>
    				</property>
    			</bean>
    		</mvc:interceptor>
    		<!-- 可继续声明其它拦截器 -->
    	</mvc:interceptors>
    

    定义适配器和注释器

    <!-- 会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean, 
    		这是SpringMVC为@Controllers分发请求所必需的,并提供了数据绑定支持、@NumberFormatannotation支持、 @Da	teTimeFormat支持、@Valid支持、读写XML的支持和读写JSON的支持等功能。 -->
    	<mvc:annotation-driven />
    

    或者也可以用

    <!-- 注解的处理器适配器 -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
    <!-- 注解的处理器映射器 -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>		
    

    导入mybatis的配置

    <import resource="classpath:spring-mybatis.xml" />	
    

    定义异常

     <!--配置上传文件数据解析器  -->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="maxUploadSize">
                <value>9242880</value>
            </property>
        </bean>
        
        <!-- 定义全局异常处理器 -->
        <!-- 只有一个全局异常处理器起作用 -->
        <bean id="exceptionResolver" class="com.wxisme.ssm.exception.OverallExceptionResolver"></bean>
        
    

    3,mybatis配置

    引入jdbc.properties配置文件来配置。

        <!-- 引入配置文件 -->
        <bean id="propertyConfigurer"
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="location" value="classpath:jdbc.properties" />
        </bean>
    
        <!-- 数据源配置, 使用应用中的DBCP数据库连接池 -->
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
            destroy-method="close">
            <!-- Connection Info -->
            <property name="driverClassName" value="${jdbc.driver}" />
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.username}" />
            <property name="password" value="${jdbc.password}" />
    
            <!-- Connection Pooling Info -->
            <property name="maxActive" value="${dbcp.maxActive}" />
            <property name="maxIdle" value="${dbcp.maxIdle}" />
            <property name="defaultAutoCommit" value="false" />
            <!-- 连接Idle一个小时后超时 -->
            <property name="timeBetweenEvictionRunsMillis" value="3600000" />
            <property name="minEvictableIdleTimeMillis" value="3600000" />
        </bean>
    
    <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
        <bean id="sqlSessionFactory"
            class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="configLocation" value="classpath:conf/mybatis-config.xml"></property>
            <!-- 自动扫描mapping.xml文件 -->
            <property name="mapperLocations" value="classpath:com/hcb/api/mapping/*.xml"></property>
        </bean>
        <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.hcb.api.dao"></property>
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
        </bean>
    
  • 相关阅读:
    MS CRM 2011的自定义和开发(10)——CRM web服务介绍(第一部分)——IDiscoveryService
    MS CRM 2011的自定义和开发(7)——视图编辑器(第二部分)
    MS CRM 2011 SDK 5.06版本已经发布
    MS CRM 2011的自定义和开发(11)——插件(plugin)开发(一)
    近来遇到的MS CRM 2011方面的几个问题
    MS CRM 2011的自定义与开发(6)——表单编辑器(第二部分)
    Microsoft Dynamics CRM 2011中,Lookup字段的赋值
    MS CRM 2011的自定义和开发(6)——表单编辑器(第三部分)
    Visual Studio 目标框架造成 命名空间“Microsoft”中不存在类型或命名空间名称“Crm”。是否缺少程序集引用中错误的处理
    一步步学习Reporting Services(二) 在报表中使用简单的参数作为查询条件
  • 原文地址:https://www.cnblogs.com/hsapphire/p/11078356.html
Copyright © 2011-2022 走看看