zoukankan      html  css  js  c++  java
  • SSM中(Spring-SpringMVC-Mybatis)(二:整合)

    使用Maven整合一个SSM,当然要配有Maven环境,Maven的环境配置自行百度,挺好配的

    创建一个Maven项目以后,目录结构如图所示:

    然后就是各部分配置:

      首先pom导入依赖jar包:

      1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      3   <modelVersion>4.0.0</modelVersion>
      4   <groupId>com.57.DXYHospital</groupId>
      5   <artifactId>demo1</artifactId>
      6   <packaging>war</packaging>
      7   <version>0.0.1-SNAPSHOT</version>
      8   <name>DXYHospital Maven Webapp</name>
      9   <url>http://maven.apache.org</url>
     10   <dependencies>
     11       <!-- Json依赖 -->
     12 <!-- https://mvnrepository.com/artifact/org.json/json -->
     13 <dependency>
     14 <groupId>com.fasterxml.jackson.core</groupId>
     15 <artifactId>jackson-core</artifactId>
     16 <version>2.8.0</version>
     17 </dependency>
     18 <dependency>
     19 <groupId>com.fasterxml.jackson.core</groupId>
     20 <artifactId>jackson-annotations</artifactId>
     21 <version>2.8.0</version>
     22 </dependency>
     23 <dependency>
     24 <groupId>com.fasterxml.jackson.core</groupId>
     25 <artifactId>jackson-databind</artifactId>
     26 <version>2.8.0</version>
     27 </dependency>
     28 
     29     <dependency>
     30         <groupId>org.json</groupId>
     31         <artifactId>json</artifactId>
     32         <version>20160810</version>
     33     </dependency>
     34     
     35 <dependency>
     36     <groupId>com.alibaba</groupId>
     37     <artifactId>fastjson</artifactId>
     38     <version>1.2.39</version>
     39 </dependency>
     40 <!-- maven fonts 字体 -->
     41 <!-- shiro相关依赖 -->
     42         <dependency>
     43             <groupId>org.apache.shiro</groupId>
     44             <artifactId>shiro-core</artifactId>
     45             <version>1.2.2</version>
     46         </dependency>
     47         <dependency>
     48             <groupId>org.apache.shiro</groupId>
     49             <artifactId>shiro-ehcache</artifactId>
     50             <version>1.2.2</version>
     51         </dependency>
     52         <dependency>
     53             <groupId>org.apache.shiro</groupId>
     54             <artifactId>shiro-web</artifactId>
     55             <version>1.2.2</version>
     56         </dependency>
     57         <dependency>
     58             <groupId>org.apache.shiro</groupId>
     59             <artifactId>shiro-quartz</artifactId>
     60             <version>1.2.2</version>
     61         </dependency>
     62         <dependency>
     63             <groupId>org.apache.shiro</groupId>
     64             <artifactId>shiro-spring</artifactId>
     65             <version>1.2.2</version>
     66         </dependency>
     67         <dependency>
     68             <groupId>mysql</groupId>
     69             <artifactId>mysql-connector-java</artifactId>
     70             <version>5.1.25</version>
     71         </dependency>
     72         <dependency>
     73             <groupId>com.alibaba</groupId>
     74             <artifactId>druid</artifactId>
     75             <version>0.2.23</version>
     76         </dependency>
     77  <!-- 单元测试 -->
     78         <dependency>
     79             <groupId>junit</groupId>
     80             <artifactId>junit</artifactId>
     81             <version>4.10</version>
     82             <scope>test</scope>
     83         </dependency>
     84 
     85         <!-- Spring 相关依赖 -->
     86         <dependency>
     87             <groupId>org.springframework</groupId>
     88             <artifactId>spring-context</artifactId>
     89             <version>4.1.3.RELEASE</version>
     90         </dependency>
     91         <dependency>
     92             <groupId>org.springframework</groupId>
     93             <artifactId>spring-beans</artifactId>
     94             <version>4.1.3.RELEASE</version>
     95         </dependency>
     96         <dependency>
     97             <groupId>org.springframework</groupId>
     98             <artifactId>spring-webmvc</artifactId>
     99             <version>4.1.3.RELEASE</version>
    100         </dependency>
    101         <dependency>
    102             <groupId>org.springframework</groupId>
    103             <artifactId>spring-jdbc</artifactId>
    104             <version>4.1.3.RELEASE</version>
    105         </dependency>
    106         <dependency>
    107             <groupId>org.springframework</groupId>
    108             <artifactId>spring-aspects</artifactId>
    109             <version>4.1.3.RELEASE</version>
    110         </dependency>
    111 
    112         <!-- Mybatis 依赖 -->
    113         <dependency>
    114             <groupId>org.mybatis</groupId>
    115             <artifactId>mybatis</artifactId>
    116             <version>3.4.2</version>
    117         </dependency>
    118 
    119         <!-- mybatis整合Spring -->
    120         <dependency>
    121             <groupId>org.mybatis</groupId>
    122             <artifactId>mybatis-spring</artifactId>
    123             <version>1.3.0</version>
    124         </dependency>
    125 
    126         <!-- Mysql 依赖 -->
    127         <dependency>
    128             <groupId>mysql</groupId>
    129             <artifactId>mysql-connector-java</artifactId>
    130             <version>5.1.6</version>
    131         </dependency>
    132 
    133         <!-- log4j日志 依赖 -->
    134         <!-- 如果log4j的版本在1.2.14以上,则会出现下面的错误:
    135 Missing artifact javax.jms:jms:jar:1.1:compile 
    136 Missing artifact com.sun.jdmk:jmxtools:jar:1.2.1:compile 
    137 Missing artifact com.sun.jmx:jmxri:jar:1.2.1:compile
    138 解决方案:原因是log4j在1.2.15及以上版本更换了协议,与jms冲突。
    139 解决办法有两种:一是使用1.2.14版本,二是手动下载jms.jar,安装到maven本地仓库中
    140  -->
    141         <dependency>
    142             <groupId>log4j</groupId>
    143             <artifactId>log4j</artifactId>
    144             <version>1.2.15</version>
    145             <exclusions>
    146                 <exclusion>
    147                     <groupId>com.sun.jmx</groupId>
    148                     <artifactId>jmxri</artifactId>
    149                 </exclusion>
    150                 <exclusion>
    151                     <groupId>com.sun.jdmk</groupId>
    152                     <artifactId>jmxtools</artifactId>
    153                 </exclusion>
    154                 <exclusion>
    155                     <groupId>javax.jms</groupId>
    156                     <artifactId>jms</artifactId>
    157                 </exclusion>
    158             </exclusions>
    159         </dependency>
    160 
    161         <!-- JSP相关 -->
    162         <dependency>
    163             <groupId>jstl</groupId>
    164             <artifactId>jstl</artifactId>
    165             <version>1.2</version>
    166         </dependency>
    167         <dependency>
    168             <groupId>javax.servlet</groupId>
    169             <artifactId>servlet-api</artifactId>
    170             <version>2.5</version>
    171             <scope>provided</scope>
    172         </dependency>
    173         <dependency>
    174             <groupId>javax.servlet</groupId>
    175             <artifactId>jsp-api</artifactId>
    176             <version>2.0</version>
    177             <scope>provided</scope>
    178         </dependency>
    179   <!-- 阿里 -->
    180     <dependency>
    181             <groupId>com.alibaba</groupId>
    182             <artifactId>druid</artifactId>
    183             <version>0.2.23</version>
    184         </dependency>
    185   </dependencies>
    186   <build>
    187     <finalName>demo1</finalName>
    188   </build>
    189 </project>

    里面的 shiro依赖可以去掉,和json依赖里面的fastjson也可以去掉,

    首先配置 applicationContext-mybatis.xml

     1 <?xml version="1.0" encoding="UTF-8"?>  
     2 <beans xmlns="http://www.springframework.org/schema/beans"  
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
     4     xmlns:context="http://www.springframework.org/schema/context"  
     5     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"  
     6     xsi:schemaLocation="http://www.springframework.org/schema/beans   
     7         http://www.springframework.org/schema/beans/spring-beans.xsd    
     8         http://www.springframework.org/schema/mvc   
     9         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd    
    10         http://www.springframework.org/schema/context   
    11         http://www.springframework.org/schema/context/spring-context.xsd  
    12         http://www.springframework.org/schema/tx    
    13         http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">  
    14 
    15     <context:component-scan base-package="org.team57.dxyh.mapper"/>
    16     <context:component-scan base-package="org.team57.dxyh.service"/>  
    17 
    18     <!-- Mybatis 和 Spring的整合 -->  
    19     <!-- 数据源 -->
    20  
    21     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    22         <!-- 基本属性 url、user、password -->
    23         <property name="url" value="jdbc:mysql://localhost:3306/ceshi"/>
    24         <property name="username" value="root"/>
    25         <property name="password" value="123456"/>
    26 
    27         <!-- 配置初始化大小、最小、最大 -->
    28         <property name="initialSize" value="10"/>
    29         <property name="minIdle" value="10"/>
    30         <property name="maxActive" value="50"/>
    31 
    32         <!-- 配置获取连接等待超时的时间 -->
    33         <property name="maxWait" value="60000"/>
    34         <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
    35         <property name="timeBetweenEvictionRunsMillis" value="60000" />
    36 
    37         <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
    38         <property name="minEvictableIdleTimeMillis" value="300000" />
    39         <property name="validationQuery" value="SELECT 'x'" />
    40         <property name="testWhileIdle" value="true" />
    41         <property name="testOnBorrow" value="false" />
    42         <property name="testOnReturn" value="false" />
    43 
    44         <!-- 打开PSCache,并且指定每个连接上PSCache的大小  如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。-->
    45         <property name="poolPreparedStatements" value="true" />
    46         <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
    47         <!-- 配置监控统计拦截的filters -->
    48         <property name="filters" value="wall,stat" />
    49     </bean>
    50   
    51     <!-- 2.Mybatis 的 SqlSession的工厂:SqlSessionFactoryBean dataSource引用数据源 Mybatis   
    52         定义数据源,同意加载配置 -->  
    53     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
    54         <property name="dataSource" ref="dataSource"></property>  
    55         <property name="mapperLocations" value="classpath:org/team57/dxyh/mapper/*.xml" />
    56         <property name="configLocation" value="classpath:mybatis-config.xml"></property>  
    57     </bean>  
    58   
    59     <!-- 3. Mybatis自动扫描加载Sql映射文件/接口:MapperScannerConfigurer sqlSessionFactory   
    60         basePackage:指定sql映射文件/接口所在的包(自动扫描) -->  
    61     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
    62         <property name="basePackage" value="org.team57.dxyh.mapper"></property>  
    63         <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>  
    64     </bean>  
    65   
    66     <!-- 4.事务管理:DataSourceTransactionManager dataSource 引用上面定义好的数据源 -->  
    67     <bean id="txManager"  
    68         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
    69         <property name="dataSource" ref="dataSource"></property>  
    70     </bean>  
    71   
    72     <!-- 5.使用声明式事务: transaction-manager = "txManager" tx:advice 这种 是用 aop方式管理事物   
    73         annotation-driven 这种是注解方式管理事物 第一种方式,需要在spring配置文件配置一些参数 第二种方式,需要在 类里 加一些注解进行事物管理   
    74         用一种就行,没必须都用 -->  
    75     <tx:annotation-driven transaction-manager="txManager" />  
    78      
    79 </beans>  

    再配置 mybatis-config.xml 这是一个全局配置,可以省略

     1 <?xml version="1.0" encoding="UTF-8" ?>  
     2 <!DOCTYPE configuration  
     3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
     4   "http://mybatis.org/dtd/mybatis-3-config.dtd">  
     5 <configuration>  
     6     <!-- 配置打印 SQL 到控制台 以及懒加载 -->  
     7     <settings>  
     8         <setting name="logImpl" value="STDOUT_LOGGING" />  
     9         <!-- 打开延迟加载的全局开关 -->  
    10         <setting name="lazyLoadingEnabled" value="true" />  
    11         <setting name="aggressiveLazyLoading" value="false" />  
    12         <setting name="mapUnderscoreToCamelCase" value="true" />  
    13     </settings>  
    14     <typeAliases>  
    15            <package name="org.team57.dxyh.entity"/>                   
    16     </typeAliases>  
    17     <mappers>  
    18         <package name="org.team57.dxyh.mapper"/>  
    19     </mappers>  
    20 </configuration>  

    再配置 spring-MVC.xml

     1 <?xml version="1.0" encoding="UTF-8"?>  
     2 <beans xmlns="http://www.springframework.org/schema/beans"  
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
     4     xmlns:context="http://www.springframework.org/schema/context"  
     5     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
     6     xmlns:task="http://www.springframework.org/schema/task"  
     7     xsi:schemaLocation="http://www.springframework.org/schema/beans   
     8         http://www.springframework.org/schema/beans/spring-beans.xsd    
     9         http://www.springframework.org/schema/mvc   
    10         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd    
    11         http://www.springframework.org/schema/context   
    12         http://www.springframework.org/schema/context/spring-context.xsd  
    13         http://www.springframework.org/schema/tx    
    14         http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    15         http://www.springframework.org/schema/task
    16         http://www.springframework.org/schema/task/spring-task-4.0.xsd">  
    17     <!-- 开启注解 -->  
    18     <mvc:annotation-driven/>  
    19     <!-- 配置自定扫描包 -->  
    20     <context:component-scan base-package="org.team57.dxyh.controller"/>  
    21     <context:component-scan base-package="org.team57.dxyh.service"/>  
    22     <context:component-scan base-package="org.team57.dxyh.Shiro"/> 
    23         <context:component-scan base-package="org.team57.dxyh.service.impl"/>
    24         
    25         <!-- 定时器,住院自动扣费 -->
    26         <task:executor pool-size="5" id="executor"/>
    27         <task:scheduler pool-size="10" id="scheduler"/>
    28         <task:annotation-driven scheduler="scheduler" executor="executor"/>
    29           
    30     <!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 -->  
    31     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    32         <property name="prefix" value="/"></property>  
    33         <property name="suffix" value=".jsp"></property>  
    34     </bean>  
    35     <!-- 处理静态资源 -->  
    36     <mvc:resources location="/js/" mapping="/js/**"/>
    37     <mvc:resources location="/css/" mapping="/css/**"/>
    38     <mvc:resources location="/fonts/" mapping="/fonts/**"/>
    39 </beans>  

    最后配置web.xml

     1 <!DOCTYPE web-app PUBLIC
     2  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     3  "http://java.sun.com/dtd/web-app_2_3.dtd" >
     4  
     5 <web-app>
     6   <!-- 加载spring与mybatis的整合配置 -->
     7  <context-param>
     8   <param-name>contextConfigLocation</param-name>
     9   <param-value>classpath:applicationContext-mybatis.xml</param-value>
    10  </context-param>
    11  
    12  
    13   <!-- 解决工程编码过滤器  
    14         注意:请将此过滤器放在所有过滤器的前面,否则有可能出现乱码  -->
    15  <filter>
    16   <filter-name>encodingFilter</filter-name>
    17   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    18   <init-param>
    19    <param-name>encoding</param-name>
    20    <param-value>UTF-8</param-value>
    21   </init-param>
    22   <init-param>
    23    <param-name>forceEncoding</param-name>
    24    <param-value>true</param-value>
    25   </init-param>
    26  </filter>
    27  <filter>  
    28       <filter-name>shiroFilter</filter-name>  
    29       <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
    30       <init-param>  
    31           <param-name>targetFilterLifecycle</param-name>  
    32           <param-value>true</param-value>  
    33       </init-param>  
    34       </filter>  
    35       <filter-mapping>  
    36           <filter-name>shiroFilter</filter-name>  
    37           <url-pattern>/*</url-pattern>  
    38       </filter-mapping>  
    39  <filter>
    40   <filter-name>HiddenHttpMethodFilter</filter-name>
    41   <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    42  </filter>
    43  <filter-mapping>
    44   <filter-name>encodingFilter</filter-name>
    45   <url-pattern>/*</url-pattern>
    46  </filter-mapping>
    47 
    48  <!-- 配置HiddenHttpMethodFilter过滤器,把 POST 请求 转换为 DELETE/PUT请求 -->
    49  <filter-mapping>
    50   <filter-name>HiddenHttpMethodFilter</filter-name>
    51   <url-pattern>/*</url-pattern>
    52  </filter-mapping>
    53  <!-- 加载Spring 容器配置 -->
    54  <listener>
    55   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    56  </listener>
    57  <!-- 防止Spring内存溢出监听器 -->
    58  <listener>
    59   <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    60  </listener>
    61  <!-- 配置 springMVC 核心控制器 -->
    62  <servlet>
    63   <servlet-name>springMVC</servlet-name>
    64   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    65   <init-param>
    66    <param-name>contextConfigLocation</param-name>
    67    <param-value>classpath:spring-MVC.xml</param-value>
    68   </init-param>
    69   <load-on-startup>1</load-on-startup>
    70  </servlet>
    71 
    72 
    73  <servlet-mapping>
    74   <servlet-name>springMVC</servlet-name>
    75   <url-pattern>/</url-pattern>
    76  </servlet-mapping>
    77  <welcome-file-list>
    78   <welcome-file>login.jsp</welcome-file>
    79  </welcome-file-list>
    80  <login-config>
    81   <auth-method>BASIC</auth-method>
    82  </login-config>
    83 </web-app>
  • 相关阅读:
    jquery 序列化form表单
    nginx for windows 安装
    nodejs idea 创建项目 (一)
    spring 配置 shiro rememberMe
    idea 2018 解决 双击shift 弹出 search everywhere 搜索框的方法
    redis 在windows 集群
    spring IOC控制反转和DI依赖注入
    redis 的安装
    shiro 通过jdbc连接数据库
    handlebars的用法
  • 原文地址:https://www.cnblogs.com/GH0522/p/8244570.html
Copyright © 2011-2022 走看看