• ssm框架搭建并演示获取json字符串


    为方便起见,使用oracle自带的scott账户中的emp表作为数据源。

    预期效果:

    1.输入URL:http://localhost:8888/ssm/getEmp?empno=7369

    2.返回结果如下:

    实现过程:

    1.引入所需jar包:

      1 <dependencies>
      2     <dependency>  
      3            <groupId>jstl</groupId>  
      4            <artifactId>jstl</artifactId>  
      5            <version>1.1.2</version>  
      6        </dependency>
      7        <!-- https://mvnrepository.com/artifact/taglibs/standard -->
      8 <dependency>
      9     <groupId>taglibs</groupId>
     10     <artifactId>standard</artifactId>
     11     <version>1.1.2</version>
     12 </dependency>
     13 <dependency>  
     14             <groupId>com.fasterxml.jackson.core</groupId>  
     15             <artifactId>jackson-core</artifactId>  
     16             <version>2.8.9</version>
     17         </dependency>  
     18           <dependency>
     19             <groupId>com.fasterxml.jackson.core</groupId>  
     20             <artifactId>jackson-databind</artifactId>  
     21             <version>2.8.9</version>  
     22         </dependency>
     23         <dependency>  
     24             <groupId>com.fasterxml.jackson.core</groupId>  
     25             <artifactId>jackson-annotations</artifactId>  
     26             <version>2.8.9</version>  
     27         </dependency>  
     28     <dependency>
     29       <groupId>junit</groupId>
     30       <artifactId>junit</artifactId>
     31       <version>3.8.1</version>
     32       <scope>test</scope>
     33     </dependency>
     34       <!-- mybatis-generator-core核心jar包 -->  
     35 <dependency>  
     36     <groupId>org.mybatis.generator</groupId>  
     37     <artifactId>mybatis-generator-core</artifactId>  
     38     <version>1.3.2</version>  
     39 </dependency> 
     40 <!-- c3p0连接池 --><!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
     41 <dependency>
     42     <groupId>c3p0</groupId>
     43     <artifactId>c3p0</artifactId>
     44     <version>0.9.1.2</version>
     45 </dependency>
     46 
     47 <!-- 添加连接Oracle的jar包 -->
     48 <!-- https://mvnrepository.com/artifact/ojdbc/ojdbc -->
     49 <dependency>
     50     <groupId>ojdbc</groupId>
     51     <artifactId>ojdbc</artifactId>
     52     <version>14-10gR3</version>
     53 </dependency>
     54     <!-- Spring4.3.3 -->
     55    <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
     56 <dependency>
     57     <groupId>org.springframework</groupId>
     58     <artifactId>spring-web</artifactId>
     59     <version>4.3.3.RELEASE</version>
     60 </dependency>
     61 <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
     62 <dependency>
     63     <groupId>org.springframework</groupId>
     64     <artifactId>spring-webmvc</artifactId>
     65     <version>4.3.3.RELEASE</version>
     66 </dependency>
     67 <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib-ext-spring 
     68 <dependency>
     69     <groupId>net.sf.json-lib</groupId>
     70     <artifactId>json-lib-ext-spring</artifactId>
     71     <version>1.0.2</version>
     72 </dependency>-->
     73 <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
     74 <dependency>
     75     <groupId>org.codehaus.jackson</groupId>
     76     <artifactId>jackson-mapper-asl</artifactId>
     77     <version>1.9.13</version>
     78 </dependency>
     79 <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-lgpl -->
     80 <dependency>
     81     <groupId>org.codehaus.jackson</groupId>
     82     <artifactId>jackson-mapper-lgpl</artifactId>
     83     <version>1.9.13</version>
     84 </dependency>
     85 <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl -->
     86 <dependency>
     87     <groupId>org.codehaus.jackson</groupId>
     88     <artifactId>jackson-core-asl</artifactId>
     89     <version>1.9.13</version>
     90 </dependency>
     91 <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-lgpl -->
     92 <dependency>
     93     <groupId>org.codehaus.jackson</groupId>
     94     <artifactId>jackson-core-lgpl</artifactId>
     95     <version>1.9.13</version>
     96 </dependency>
     97 <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
     98 <dependency>
     99     <groupId>org.springframework</groupId>
    100     <artifactId>spring-jdbc</artifactId>
    101     <version>4.3.3.RELEASE</version>
    102 </dependency>
    103 <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    104 <dependency>
    105     <groupId>org.springframework</groupId>
    106     <artifactId>spring-context</artifactId>
    107     <version>4.3.3.RELEASE</version>
    108 </dependency>
    109 <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
    110 <dependency>
    111     <groupId>org.springframework</groupId>
    112     <artifactId>spring-core</artifactId>
    113     <version>4.3.3.RELEASE</version>
    114 </dependency>
    115 <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
    116 <dependency>
    117     <groupId>org.springframework</groupId>
    118     <artifactId>spring-aop</artifactId>
    119     <version>4.3.3.RELEASE</version>
    120 </dependency>
    121 <!-- 与spring-aop相关的jar包 -->
    122 <!-- https://mvnrepository.com/artifact/aopalliance/aopalliance -->
    123 <dependency>
    124     <groupId>aopalliance</groupId>
    125     <artifactId>aopalliance</artifactId>
    126     <version>1.0</version>
    127 </dependency>
    128 <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
    129 <dependency>
    130     <groupId>org.aspectj</groupId>
    131     <artifactId>aspectjrt</artifactId>
    132     <version>1.8.9</version>
    133 </dependency>
    134 <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
    135 <dependency>
    136     <groupId>org.aspectj</groupId>
    137     <artifactId>aspectjweaver</artifactId>
    138     <version>1.8.9</version>
    139 </dependency>
    140 <!-- Junit -->
    141 <!-- https://mvnrepository.com/artifact/junit/junit -->
    142 <dependency>
    143     <groupId>junit</groupId>
    144     <artifactId>junit</artifactId>
    145     <version>4.10</version>
    146 </dependency>
    147 <!-- JSR303验证 -->
    148 <!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
    149 <dependency>
    150     <groupId>javax.validation</groupId>
    151     <artifactId>validation-api</artifactId>
    152     <version>1.1.0.Final</version>
    153 </dependency>
    154 <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
    155 <dependency>
    156     <groupId>org.hibernate</groupId>
    157     <artifactId>hibernate-validator</artifactId>
    158     <version>5.2.4.Final</version>
    159 </dependency>
    160 
    161 <!-- 重写equals和hashCode方法的包 -->
    162 <!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
    163 <dependency>
    164     <groupId>commons-lang</groupId>
    165     <artifactId>commons-lang</artifactId>
    166     <version>2.6</version>
    167 </dependency>
    168 <!-- tiles页面布局 -->
    169     <!-- https://mvnrepository.com/artifact/org.apache.tiles/tiles-jsp -->
    170 <dependency>
    171     <groupId>org.apache.tiles</groupId>
    172     <artifactId>tiles-jsp</artifactId>
    173     <version>3.0.7</version>
    174 </dependency>
    175 <!-- log4j -->
    176 <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    177 <dependency>
    178     <groupId>log4j</groupId>
    179     <artifactId>log4j</artifactId>
    180     <version>1.2.17</version>
    181 </dependency>
    182 <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-ext -->
    183 <dependency>
    184     <groupId>org.slf4j</groupId>
    185     <artifactId>slf4j-ext</artifactId>
    186     <version>1.5.10</version>
    187 </dependency>
    188 <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
    189 <dependency>
    190     <groupId>org.slf4j</groupId>
    191     <artifactId>slf4j-api</artifactId>
    192     <version>1.5.10</version>
    193 </dependency>
    194 <!-- https://mvnrepository.com/artifact/org.slf4j/jcl-over-slf4j -->
    195 <dependency>
    196     <groupId>org.slf4j</groupId>
    197     <artifactId>jcl-over-slf4j</artifactId>
    198     <version>1.5.10</version>
    199 </dependency>
    200 <!-- slf4j -->
    201 <dependency>
    202     <groupId>org.slf4j</groupId>
    203     <artifactId>slf4j-log4j12</artifactId>
    204     <version>1.5.10</version>
    205 </dependency>
    206 <!-- AspectJ -->
    207 <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
    208 <dependency>
    209     <groupId>org.aspectj</groupId>
    210     <artifactId>aspectjrt</artifactId>
    211     <version>1.8.9</version>
    212 </dependency>
    213 <!-- SpringMVC文件上传 -->
    214 <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
    215 <dependency>
    216     <groupId>commons-io</groupId>
    217     <artifactId>commons-io</artifactId>
    218     <version>2.4</version>
    219 </dependency>
    220 <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
    221 <dependency>
    222     <groupId>commons-fileupload</groupId>
    223     <artifactId>commons-fileupload</artifactId>
    224     <version>1.3.1</version>
    225 </dependency>
    226   <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    227 <dependency>
    228     <groupId>org.mybatis</groupId>
    229     <artifactId>mybatis</artifactId>
    230     <version>3.4.1</version>
    231 </dependency>
    232   <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    233 <dependency>
    234     <groupId>org.mybatis</groupId>
    235     <artifactId>mybatis-spring</artifactId>
    236     <version>1.3.0</version>
    237 </dependency>
    238 
    239 </dependencies>
    pom.xml

    2.创建所需目录:

    3.使用MyBatis-generator生成POJO和mapper

      3.1为pojo添加@Component注解

      3.2为mapper接口添加@repository注解

    4.在resources目录中放置log4j配置文件

     1 log4j.rootLogger=DEBUG,Console  
     2   
     3 #Console  
     4 log4j.appender.Console=org.apache.log4j.ConsoleAppender  
     5 log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
     6 log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n  
     7   
     8 #sql show
     9 log4j.logger.com.ibatis=DEBUG
    10 log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
    11 log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
    12 log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
    13 log4j.logger.java.sql.Connection=DEBUG
    14 log4j.logger.java.sql.Statement=DEBUG
    15 log4j.logger.java.sql.PreparedStatement=DEBUG
    16 
    17 # MyBatis logging configuration...
    18 #log4j.logger.com.yan.ssm.dao.mapper=TRACE
    log4j.properties

     5.在resources目录中放置数据库配置文件

     1 #jdbc.driverClassName=com.mysql.jdbc.Driver
     2 #jdbc.url=jdbc:mysql://localhost:3306:mysql
     3 jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
     4 jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
     5 jdbc.username=scott
     6 jdbc.password=orcl
     7 jdbc.initialPoolSize=20 
     8 jdbc.maxPoolSize=100  
     9 jdbc.minPoolSize=10  
    10 jdbc.maxIdleTime=600  
    11 jdbc.acquireIncrement=5  
    12 jdbc.maxStatements=5  
    13 jdbc.idleConnectionTestPeriod=60
    dataSource.properties

    6.配置MyBatis配置文件

      6.1配置log4j

    1 <settings>
    2     <!-- 使用Log4J输出日志 -->
    3     <setting name="logImpl" value="LOG4J"/>
    4     <!-- 配置全局的映射器启用或禁用缓存 -->
    5     <setting name="cacheEnabled" value="false"/>
    6     <setting name="lazyLoadingEnabled" value="true"/>
    7     <setting name="defaultStatementTimeout" value="30000"/>
    8 </settings>

      6.2定义别名

    1 <!-- 定义别名 -->
    2 <typeAliases>
    3     <package name="com.yan.issm.pojo"/>
    4 </typeAliases>

      6.3定义mapper(和此例中的7.4+7.5起同样作用,此处其实可以不配置,统一交由Spring管理)

    1 <mappers>
    2 <!-- mapper和package两种方式二选一
    3 <mapper resource="com/yan/issm/dao/mapper/EmpMapper.xml"/>
    4 <mapper resource="com/yan/issm/dao/mapper/DeptMapper.xml"/> -->
    5 <package name="com.yan.issm.dao.mapper"/>
    6 </mappers>

    6.4MyBatis配置全文

     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 <settings>
     7     <!-- 使用Log4J输出日志 -->
     8     <setting name="logImpl" value="LOG4J"/>
     9     <!-- 配置全局的映射器启用或禁用缓存 -->
    10     <setting name="cacheEnabled" value="false"/>
    11     <setting name="lazyLoadingEnabled" value="true"/>
    12     <setting name="defaultStatementTimeout" value="30000"/>
    13 </settings>
    14 <!-- 定义别名 -->
    15 <typeAliases>
    16     <package name="com.yan.issm.pojo"/>
    17 </typeAliases>
    18 
    19 <mappers>
    20 <mapper resource="com/yan/issm/dao/mapper/EmpMapper.xml"/>
    21 <mapper resource="com/yan/issm/dao/mapper/DeptMapper.xml"/>
    22 </mappers>
    23 </configuration>
    sqlMapConfig.xml

    7.配置Spring上下文

      7.1配置beans属性

     1 <beans
     2     xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:c="http://www.springframework.org/schema/c"
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5     xmlns:p="http://www.springframework.org/schema/p"
     6     xmlns:tx="http://www.springframework.org/schema/tx"
     7     xmlns:jdbc="http://www.springframework.org/schema/jdbc"
     8     xmlns:jee="http://www.springframework.org/schema/jee"
     9     xmlns:aop="http://www.springframework.org/schema/aop"
    10     xmlns:context="http://www.springframework.org/schema/context"
    11     xmlns:mvc="http://www.springframework.org/schema/mvc"
    12     xmlns:conditional="http://www.springframework.org/schema/context"
    13     xsi:schemaLocation="http://www.springframework.org/schema/beans 
    14     http://www.springframework.org/schema/beans/spring-beans.xsd
    15     http://www.springframework.org/schema/context 
    16     http://www.springframework.org/schema/context/spring-context.xsd
    17     http://www.springframework.org/schema/jdbc 
    18     http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
    19     http://www.springframework.org/schema/aop
    20     http://www.springframework.org/schema/aop/spring-aop.xsd
    21     http://www.springframework.org/schema/mvc
    22     http://www.springframework.org/schema/mvc/spring-mvc.xsd
    23     http://www.springframework.org/schema/jee 
    24     http://www.springframework.org/schema/jee/spring-jee.xsd
    25     http://www.springframework.org/schema/tx 
    26     http://www.springframework.org/schema/tx/spring-tx.xsd
    27     http://www.springframework.org/schema/conditional 
    28     http://www.springframework.org/schema/conditional/spring-conditional.xsd">
    29         ...
    30 </beans>

      7.2配置自动扫描的包

    1 <context:component-scan base-package="com.yan.issm"></context:component-scan>

      7.3导入数据库配置文件并读取

     1 <context:property-placeholder location="classpath:dataSource.properties"/>
     2 
     3     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
     4         <!-- 指定连接数据库的驱动-->
     5         <property name="driverClass" value="${jdbc.driverClassName}"/>  
     6         <!-- 指定连接数据库的URL-->  
     7         <property name="jdbcUrl" value="${jdbc.url}"/>  
     8         <!-- 指定连接数据库的用户名-->  
     9         <property name="user" value="${jdbc.username}"/>  
    10         <!-- 指定连接数据库的密码-->  
    11         <property name="password" value="${jdbc.password}"/>  
    12         <!-- 指定连接池中保留的最大连接数. Default:15-->  
    13         <property name="maxPoolSize" value="${jdbc.maxPoolSize}"/>  
    14         <!-- 指定连接池中保留的最小连接数-->  
    15         <property name="minPoolSize" value="${jdbc.minPoolSize}"/>  
    16         <!-- 指定连接池的初始化连接数  取值应在minPoolSize 与 maxPoolSize 之间.Default:3-->  
    17         <property name="initialPoolSize" value="${jdbc.initialPoolSize}"/>  
    18         <!-- 最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。 Default:0-->  
    19         <property name="maxIdleTime" value="${jdbc.maxIdleTime}"/>  
    20         <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数. Default:3-->  
    21         <property name="acquireIncrement" value="${jdbc.acquireIncrement}"/>  
    22         <!-- JDBC的标准,用以控制数据源内加载的PreparedStatements数量。  
    23         但由于预缓存的statements属于单个connection而不是整个连接池所以设置这个参数需要考虑到多方面的因数.如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default:0-->  
    24         <property name="maxStatements" value="${jdbc.maxStatements}"/>  
    25         <!-- 每60秒检查所有连接池中的空闲连接.Default:0 -->  
    26         <property name="idleConnectionTestPeriod" value="${jdbc.idleConnectionTestPeriod}"/>  
    27     </bean>

      7.3配置MyBatis的SqlSessionFactory

    1     <!-- 配置MyBatis的SqlSessionFactory,并且定义其scope为prototype-多例模式 -->
    2     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" scope="prototype">
    3         <property name="dataSource" ref="dataSource"></property>
    4         <property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
    5     </bean>

      7.4配置SQLSessionTemplate

    1     <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    2         <constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
    3     </bean>

      7.5配置自动扫描mapper

    1     <!-- 采用自动扫描方式创建mapper bean -->
    2     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    3         <property name="basePackage" value="com.yan.issm.dao.mapper"/>
    4         <property name="sqlSessionTemplateBeanName" value="sqlSessionTemplate"/>
    5         <property name="annotationClass" value="org.springframework.stereotype.Repository"/>
    6     </bean>

      7.6applicationContext配置全文

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans
     3     xmlns="http://www.springframework.org/schema/beans"
     4     xmlns:c="http://www.springframework.org/schema/c"
     5     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     6     xmlns:p="http://www.springframework.org/schema/p"
     7     xmlns:tx="http://www.springframework.org/schema/tx"
     8     xmlns:jdbc="http://www.springframework.org/schema/jdbc"
     9     xmlns:jee="http://www.springframework.org/schema/jee"
    10     xmlns:aop="http://www.springframework.org/schema/aop"
    11     xmlns:context="http://www.springframework.org/schema/context"
    12     xmlns:mvc="http://www.springframework.org/schema/mvc"
    13     xmlns:conditional="http://www.springframework.org/schema/context"
    14     xsi:schemaLocation="http://www.springframework.org/schema/beans 
    15     http://www.springframework.org/schema/beans/spring-beans.xsd
    16     http://www.springframework.org/schema/context 
    17     http://www.springframework.org/schema/context/spring-context.xsd
    18     http://www.springframework.org/schema/jdbc 
    19     http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
    20     http://www.springframework.org/schema/aop
    21     http://www.springframework.org/schema/aop/spring-aop.xsd
    22     http://www.springframework.org/schema/mvc
    23     http://www.springframework.org/schema/mvc/spring-mvc.xsd
    24     http://www.springframework.org/schema/jee 
    25     http://www.springframework.org/schema/jee/spring-jee.xsd
    26     http://www.springframework.org/schema/tx 
    27     http://www.springframework.org/schema/tx/spring-tx.xsd
    28     http://www.springframework.org/schema/conditional 
    29     http://www.springframework.org/schema/conditional/spring-conditional.xsd">
    30     <!-- 配置自动扫描的包 -->
    31     <context:component-scan base-package="com.yan.issm"></context:component-scan>
    32     <!-- 导入配置文件 -->
    33     <context:property-placeholder location="classpath:dataSource.properties"/>
    34     <!-- <aop:aspectj-autoproxy proxy-target-class="true"/> -->
    35     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
    36         <!-- 指定连接数据库的驱动-->
    37         <property name="driverClass" value="${jdbc.driverClassName}"/>  
    38         <!-- 指定连接数据库的URL-->  
    39         <property name="jdbcUrl" value="${jdbc.url}"/>  
    40         <!-- 指定连接数据库的用户名-->  
    41         <property name="user" value="${jdbc.username}"/>  
    42         <!-- 指定连接数据库的密码-->  
    43         <property name="password" value="${jdbc.password}"/>  
    44         <!-- 指定连接池中保留的最大连接数. Default:15-->  
    45         <property name="maxPoolSize" value="${jdbc.maxPoolSize}"/>  
    46         <!-- 指定连接池中保留的最小连接数-->  
    47         <property name="minPoolSize" value="${jdbc.minPoolSize}"/>  
    48         <!-- 指定连接池的初始化连接数  取值应在minPoolSize 与 maxPoolSize 之间.Default:3-->  
    49         <property name="initialPoolSize" value="${jdbc.initialPoolSize}"/>  
    50         <!-- 最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。 Default:0-->  
    51         <property name="maxIdleTime" value="${jdbc.maxIdleTime}"/>  
    52         <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数. Default:3-->  
    53         <property name="acquireIncrement" value="${jdbc.acquireIncrement}"/>  
    54         <!-- JDBC的标准,用以控制数据源内加载的PreparedStatements数量。  
    55         但由于预缓存的statements属于单个connection而不是整个连接池所以设置这个参数需要考虑到多方面的因数.如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default:0-->  
    56         <property name="maxStatements" value="${jdbc.maxStatements}"/>  
    57         <!-- 每60秒检查所有连接池中的空闲连接.Default:0 -->  
    58         <property name="idleConnectionTestPeriod" value="${jdbc.idleConnectionTestPeriod}"/>  
    59     </bean> 
    60     <!-- 配置MyBatis的SqlSessionFactory,并且定义其scope为prototype-多例模式 -->
    61     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" scope="prototype">
    62         <property name="dataSource" ref="dataSource"></property>
    63         <property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
    64     </bean>
    65     <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    66         <constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
    67     </bean>
    68     <!-- 采用自动扫描方式创建mapper bean -->
    69     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    70         <property name="basePackage" value="com.yan.issm.dao.mapper"/>
    71         <property name="sqlSessionTemplateBeanName" value="sqlSessionTemplate"/>
    72         <property name="annotationClass" value="org.springframework.stereotype.Repository"/>
    73     </bean>
    74 </beans>
    applicationContext

    8.配置SpringMVC

      8.1配置自动扫描

    1 <mvc:annotation-driven/>

      8.2配置自动扫描的包名(必须配,与上下文中的有区别)

    1 <context:component-scan base-package="com.yan.ssm.controller"/>

      8.3配置JSON转换器

    1     <!-- 配置json转换器 -->
    2     <bean id="jsonMessageConverters" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    3         <property name="supportedMediaTypes">
    4             <list>
    5                 <value>application/json;charset=UTF-8</value>
    6             </list>
    7         </property>
    8     </bean>

      8.4配置JSON视图拦截器

    1     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    2         <property name="messageConverters">
    3             <list>
    4                 <!-- JSON视图拦截器,碰到ResponseBody会触发 -->
    5                 <ref bean="jsonMessageConverters"/>
    6             </list>
    7         </property>
    8     </bean> 

      8.5配置视图和静态资源访问(本例不涉及

    1         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    2             <property name="prefix" value="/WEB-INF/views/"></property>
    3             <property name="suffix" value=".jsp"></property>
    4             <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
    5         </bean>
    6     <!--添加访问静态资源的功能 -->
    7  <mvc:resources location="/resources/" mapping="/resources/**"></mvc:resources>

      8.6spring-servlet配置全文

     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"
     4     xmlns:mvc="http://www.springframework.org/schema/mvc"
     5     xmlns:p="http://www.springframework.org/schema/p"
     6     xmlns:context="http://www.springframework.org/schema/context"
     7     xsi:schemaLocation="
     8         http://www.springframework.org/schema/beans
     9         http://www.springframework.org/schema/beans/spring-beans.xsd
    10         http://www.springframework.org/schema/context
    11         http://www.springframework.org/schema/context/spring-context.xsd
    12         http://www.springframework.org/schema/mvc
    13         http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    14     <mvc:annotation-driven/>
    15     <context:component-scan base-package="com.yan.issm.controller"/>
    16     <!-- 配置json转换器 -->
    17     <bean id="jsonMessageConverters" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    18         <property name="supportedMediaTypes">
    19             <list>
    20                 <value>application/json;charset=UTF-8</value>
    21             </list>
    22         </property>
    23     </bean>
    24     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    25         <property name="messageConverters">
    26             <list>
    27                 <!-- JSON视图拦截器,碰到ResponseBody会触发 -->
    28                 <ref bean="jsonMessageConverters"/>
    29             </list>
    30         </property>
    31     </bean> 
    32     
    33         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    34             <property name="prefix" value="/WEB-INF/views/"></property>
    35             <property name="suffix" value=".jsp"></property>
    36             <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
    37         </bean>
    38     <!--添加访问静态资源的功能 -->
    39  <mvc:resources location="/resources/" mapping="/resources/**"></mvc:resources>
    40 </beans>
    Spring-servlet.xml

    9.配置web.xml

      9.1配置log4j上下文

    1   <context-param>   
    2    <param-name>log4jConfigLocation</param-name>   
    3    <param-value>classpath:log4j.properties</param-value>   
    4 </context-param>

        9.2配置spring-log4j监听器

    1 <!-- 定义LOG4J监听器 -->
    2 <listener>   
    3    <listener-class>   
    4         org.springframework.web.util.Log4jConfigListener   
    5    </listener-class>   
    6 </listener> 

      9.3配置加载指定位置的上下文配置文件

    1 <!-- 加载指定位置的上下文配置文件 -->
    2   <context-param>
    3       <param-name>contextConfigLocation</param-name>
    4       <param-value>classpath:applicationContext.xml</param-value>
    5   </context-param>

      9.4配置DispatcherServlet

     1 <servlet>
     2       <servlet-name>Spring</servlet-name>
     3       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     4       <!-- 表示启动容器时初始化该servlet -->
     5       <init-param>
     6           <param-name>contextConfigLocation</param-name>
     7           <param-value>classpath:Spring-servlet.xml</param-value>
     8       </init-param>
     9       <load-on-startup>1</load-on-startup>
    10       </servlet>

      9.5配置DispatcherServlet映射规则

    1       <servlet-mapping>
    2           <servlet-name>Spring</servlet-name>
    3           <!-- 表示哪些请求需要交给Spring Web MVC处理,/是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求 -->
    4           <url-pattern>/*</url-pattern>
    5       </servlet-mapping>

      9.6配置字符集过滤器(纯英文,本例不涉及)

     1     <!-- 使用spring解决中文乱码 -->
     2         <filter>
     3         <filter-name>CharacterEncodingFilter</filter-name>
     4         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
     5         <init-param>
     6             <param-name>encoding</param-name>
     7             <param-value>utf-8</param-value>
     8         </init-param>
     9       </filter>
    10       
    11       <filter-mapping>
    12         <filter-name>CharacterEncodingFilter</filter-name>
    13         <url-pattern>/*</url-pattern>  
    14       </filter-mapping>

      9.7web.xml配置全文

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app version="3.0" 
     3     xmlns="http://java.sun.com/xml/ns/javaee" 
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     6     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
     7   <display-name>ssm</display-name>    
     8   <welcome-file-list>
     9     <welcome-file>index.jsp</welcome-file>
    10   </welcome-file-list>
    11   <context-param>   
    12    <param-name>log4jConfigLocation</param-name>   
    13    <param-value>classpath:log4j.properties</param-value>   
    14 </context-param>
    15   <listener>   
    16      <listener-class>   
    17           org.springframework.web.context.ContextLoaderListener   
    18      </listener-class>   
    19 </listener>
    20 <!-- 定义LOG4J监听器 -->
    21 <listener>   
    22    <listener-class>   
    23         org.springframework.web.util.Log4jConfigListener   
    24    </listener-class>   
    25 </listener> 
    26 <!-- 加载指定位置的上下文配置文件 -->
    27   <context-param>
    28       <param-name>contextConfigLocation</param-name>
    29       <param-value>classpath:applicationContext.xml</param-value>
    30   </context-param>
    31 <servlet>
    32       <servlet-name>Spring</servlet-name>
    33       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    34       <!-- 表示启动容器时初始化该servlet -->
    35       <init-param>
    36           <param-name>contextConfigLocation</param-name>
    37           <param-value>classpath:Spring-servlet.xml</param-value>
    38       </init-param>
    39       <load-on-startup>1</load-on-startup>
    40       </servlet>
    41       <servlet-mapping>
    42           <servlet-name>Spring</servlet-name>
    43           <!-- 表示哪些请求需要交给Spring Web MVC处理,/是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求 -->
    44           <url-pattern>/*</url-pattern>
    45       </servlet-mapping>
    46     <!-- 使用spring解决中文乱码 -->
    47         <filter>
    48         <filter-name>CharacterEncodingFilter</filter-name>
    49         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    50         <init-param>
    51             <param-name>encoding</param-name>
    52             <param-value>utf-8</param-value>
    53         </init-param>
    54       </filter>
    55       
    56       <filter-mapping>
    57         <filter-name>CharacterEncodingFilter</filter-name>
    58         <url-pattern>/*</url-pattern>  
    59       </filter-mapping>
    60 </web-app>
    web.xml

    10.完成service层

      10.1创建EmpService接口

    1 Emp selectByPrimaryKey(Short empno);

      10.2实现接口EmpServiceImpl

     1 @Service
     2 public class EmpServiceImpl implements EmpService {
     3     @Autowired
     4     EmpMapper empMapper;
     5 
     6     @Override
     7     public Emp selectByPrimaryKey(Short empno) {
     8         return empMapper.selectByPrimaryKey(empno);
     9     }
    10 }

    11.完成Controller层

     1 @Controller
     2 public class EmpController {
     3     @Autowired
     4     EmpService empService;
     5     
     6     @RequestMapping(value="/getEmp",method=RequestMethod.GET)
     7     @ResponseBody
     8     public Emp getEmp(short empno)
     9     {
    10         return empService.selectByPrimaryKey(empno);
    11     }
    12 }
  • 相关阅读:
    逆序数———线段树/树状数组
    线段树 模板
    博弈论--对称博弈
    matlab程序设计
    matlab矩阵的操作
    2nd 历年学生作品评论(3部)
    1st 四人小组项目
    1st 本周工作量及进度统计
    1st 结对编程:简易四则运算
    1st 英文文章词频统计
  • 原文地址:https://www.cnblogs.com/yw0219/p/7108142.html
Copyright © 2020-2023  润新知