SSM框架搭建

SSM(spring springMVC MyBatis)框架搭建
第一步:导入jar包
第二步:导入配置文件
配置文件详细代码:
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">
<!-- myBatis框架的全局配置文件 -->
<configuration>
  
  
 
   <settings>
    <!-- 映射下划线命名到驼峰命名  例如: last_name to  lastName  -->
    <setting name="mapUnderscoreToCamelCase" value="true"/>
   </settings>
  
  <!--批量起别名  -->
  <typeAliases>
      <package name="com.jk.model"/>
  </typeAliases>
  
  <plugins>
      <!-- com.github.pagehelper为PageHelper类所在包名 -->
      <plugin interceptor="com.github.pagehelper.PageInterceptor">
          <property name="helperDialect" value="oracle"/>
          <property name="pageSizeZero" value="true"/>
          <property name="reasonable" value="true"/>
   </plugin>
  </plugins>
</configuration>

spring-context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
 xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
  
<!-- 自动扫描mapper和service包(自动注入) -->
 <context:component-scan base-package="com.jk.mapper,com.jk.service" />
 
 <!-- 配置数据源属性文件 -->
 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
   <list>
    <value>classpath:jdbc.properties</value>
   </list>
  </property>
 </bean>
 <!--   c3p0  dbcp  druid 数据库连接池   -->
 <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
  <!-- 数据库驱动 -->
   <property name="driverClassName" value="${jdbc_driver}"></property>
  <!-- 数据库连接路径 -->
  <property name="url" value="${jdbc_url}" />
  <!-- 数据库连接帐号 -->
  <property name="username" value="${jdbc_username}" />
  <!-- 数据库连接密码 -->
  <property name="password" value="${jdbc_password}" />
  <!-- 初始化连接大小 -->
  <property name="initialSize" value="0" />
  <!-- 连接池最大使用连接数量 -->
  <property name="maxActive" value="20" />
  <!-- 连接池最小空闲 -->
  <property name="minIdle" value="0" />
  <!-- 获取连接最大等待时间 -->
  <property name="maxWait" value="60000" />
  <!-- 客户端在使用一个无效的连接时会先对该连接进行测试,如果发现该连接已经无效,则重新从连接池获取有效数据库连接来使用。 -->
  <property name="validationQuery" value="${validationQuery}" />
  <!-- 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 -->
  <property name="testOnBorrow" value="false" />
  <!-- 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 -->
  <property name="testOnReturn" value="false" />
  <!-- 建议配置为true,不影响性能,并且保证安全性。
  申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 -->
  <property name="testWhileIdle" value="true" />
  <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
  <property name="timeBetweenEvictionRunsMillis" value="60000" />
  <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
  <property name="minEvictableIdleTimeMillis" value="25200000" />
  <!-- 打开removeAbandoned功能 -->
  <!-- 对于长时间不使用的连接强制关闭 -->
  <property name="removeAbandoned" value="true" />
  <!-- 1800秒,也就是30分钟 -->
  <property name="removeAbandonedTimeout" value="1800" />
  <!-- 关闭abanded连接时输出错误日志 -->
  <property name="logAbandoned" value="true" />
  <!-- 监控数据库 -->
  <!-- <property name="filters" value="mergeStat" /> -->
  <property name="filters" value="stat" />
 </bean>
    <!-- 配置事务管理器 -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>
    <!-- 注解方式配置事务 -->
    <tx:annotation-driven transaction-manager="transactionManager" />
 
  <!-- 拦截器方式配置事物 -->  
    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
        <tx:attributes>  
            <!--定义查询方法都是只读的 -->  
            <tx:method name="query*" read-only="true" />  
            <tx:method name="find*" read-only="true" />  
            <tx:method name="get*" read-only="true" />  
            <tx:method name="select*" read-only="true" />  
            <tx:method name="save*" propagation="SUPPORTS" />  
            <tx:method name="add*" propagation="SUPPORTS" />  
            <tx:method name="insert*" propagation="SUPPORTS" />  
            <tx:method name="up*" propagation="SUPPORTS" />  
            <tx:method name="edit*" propagation="SUPPORTS" />  
            <tx:method name="del*" propagation="SUPPORTS" />  
            <tx:method name="rem*" propagation="SUPPORTS" />  
            <!--其他方法使用默认事务策略 -->  
            <tx:method name="*" />  
            </tx:attributes>  
    </tx:advice>
    
    <aop:config>
     <!-- 配置事物切点                                                                                   注意改动 ↓↓↓↓↓↓  -->
     <aop:pointcut id="txPointcut" expression="execution(* com.jk.service..*.*(..))" />  
       <!--  应用事务策略到Service切面   -->
  <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
    </aop:config>
    <!--首先,SqlSessionFactory 会话工厂会加载 数据库信息,
 然后生成一个可以与数据库交互的会话实例类 SqlSession,
 会话实例类 SqlSession 会根据 Mapper 配置文件中的 sql 配置,
 去执行相应的增删改查操作。这样,MyBatis 就实现了与数据库的交互功能。 -->
 <!-- 整合MyBatis -->
 <bean id="" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource"></property>
  <!-- 指定Mybatis的全局配置文件 -->
  <property name="configLocation" value="classpath:mybatis-config.xml"></property>
  <!-- 指定MyBatis的映射文件 -->
  <property name="mapperLocations" value="classpath:com/jk/mapper/*.xml"></property>
 </bean>
 <!-- 扫描所有的mapper接口,生成代理实现类,让Spring管理mapper接口组件 -->
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.jk.mapper"></property>
 </bean>
 
 <!-- <mybatis-spring:scan base-package="com.jk.mapper"/> -->
</beans>

spring-mvc.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:mvc="http://www.springframework.org/schema/mvc"
 xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
 
 <!-- 扫描控制层   -->
 <context:component-scan base-package="com.jk.controller" />
 
 <!-- 开启注解 -->
 <mvc:annotation-driven />
 
 <!-- 视图解析器 -->
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/"></property>
  <property name="suffix" value=".jsp"></property>
 </bean>
 
 <!--  处理静态资源 -->
 <!-- <mvc:default-servlet-handler/> -->
 
 
 <!-- 上传下载文件必须配置此处 -->
 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  <property name="defaultEncoding">
   <value>UTF-8</value>
  </property>
  <property name="maxUploadSize">
   <value>32505856</value><!-- 上传文件大小限制为31M,31*1024*1024 -->
  </property>
  <property name="maxInMemorySize">
   <value>4096</value>
  </property>
 </bean>
</beans>


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘水水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值