ssm整合经验(SpringMVC+Mybatis)

  1. 云栖社区>
  2. 博客>
  3. 正文

ssm整合经验(SpringMVC+Mybatis)

lisongyu 2017-08-06 15:54:19 浏览1119
展开阅读全文

1.1 web.xml

   使用IDEA maven自动生成的项目,会生成一个2.3版本的web.xml文件,首先要修改成3.1版本的.以下是头文件.
<?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1"
        metadata-complete="true">

1. 2 添加DispatcherServlet

 <servlet>
    <servlet-name>seckill-servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--配置springmvc加载的文件-->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>seckill-servlet</servlet-name>
    <!--默认匹配所有的请求-->
    <url-pattern>/</url-pattern>
</servlet-mapping>

2.1 spring.xml

以下是spring相关文件的头部,在spring-*.xml中头文件是公用的,后期配置上相关的头时,IDEA会自动添加.
Ps:注意一定要看清路径,否则相关组件不会生效.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

2.2 spring-dao.xml

这个是连接数据库和整合mybatis的配置文件.
  1. 首先要注入jdbc的配置文件

    <!—注入jdbc配置文件-->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    

    ①. jdbc.properties文件

        driverClass=com.mysql.jdbc.Driver
        jdbcUrl=jdbc:mysql://127.0.0.1:3306/seckill
        user=root
        password=root
    
  2. 进行数据库连接池的配置

    <!--数据库连接池 c3p0-->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${driverClass}"/>
        <property name="jdbcUrl" value="${jdbcUrl}"/>
        <property name="user"   value="${user}"/>
        <property name="password" value="${password}"/>
    
        <!--设置数据库中最大连接值30-->
        <property name="maxPoolSize" value="30"/>
        <!--设置数据库中最小连接值10-->
        <property name="minPoolSize" value="10"/>
        <!--开启自动提交事物-->
        <property name="autoCommitOnClose" value="false"/>
        <!--等待超时抛出异常1s,默认0-->
        <property name="checkoutTimeout" value="1000"/>
        <!--连接数据库失败后重试次数2次-->
        <property name="acquireRetryAttempts" value="2"/>
    </bean>
    
  3. 配置sqlSessionFactory对象

    <!--sqlSessionFactory对象-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入dataSource-->
        <property name="dataSource" ref="dataSource"/>
        <!--引入mybatis-config.xml-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <!--要扫描的相关实体类-->
        <property name="typeAliasesPackage" value="com.seckill.entity"/>
        <!--dao接口中相对应的mapper.xml-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>
    

    ②. mybatis-config.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="useGeneratedKeys" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>

useGeneratedKeys 允许 JDBC 支持自动生成主键,需要驱动兼容。 如果设置为 true 则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作(比如 Derby)。

useColumnLabel 使用列标签代替列名。不同的驱动在这方面会有不同的表现, 具体可参考相关驱动文档或通过测试这两种不同的模式来观察所用驱动的结果。

mapUnderscoreToCamelCase 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。

 4.扫描dao接口

    <!--扫描dao-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--注入sqlSessionFactory对象-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!--扫描dao包地址-->
        <property name="basePackage" value="com.seckill.dao"/>
    </bean>

2.3 spring-service.xml

相关spring中service的业务逻辑层的控制

<!--配置注解-->
<context:component-scan base-package="com.seckill.service"/>
<!--配置事物管理器-->
<bean id="transactionManager"  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <!--注入数据库连接池-->
    <property name="dataSource" ref="dataSource"/>
</bean>
<!--配置注解的声明式事物,默认使用注解来管理事物行为-->
<tx:annotation-driven transaction-manager="transactionManager"/>

2.4 spring-web.xml

相关连接web前端的配置文件

<!--配置springMVC-->
<!--开启注解-->
<mvc:annotation-driven/>

<!--开启默认的handler-->
<mvc:default-servlet-handler/>

<!--前端页面的相关配置-->
<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>

<!--扫描web相关包-->
<context:component-scan base-package="com.seckill.web"/>

这是我的项目文件.

这里写图片描述

网友评论

登录后评论
0/500
评论
lisongyu
+ 关注