1. 程式人生 > 實用技巧 >SSM框架的具體搭建配置

SSM框架的具體搭建配置

學習java難免要掌握ssm框架,下面是ssm框架具體的目錄結構和配置。記錄一下,方便以後進行使用:
db.properties
log4j.properties
mybatis-config.xml
spring-context.xml
springmvc-context.xml
web.xml
pom.xml
Dao層對映:com.online.dao.Student.xml
Java包配置:com.online. ontroller.StudentController.java
com.online.dao.StudentDao.java
com.online.domain.Student.java
com.online.service.StudentService.java
com.online.service.impl.StudentServiceImpl.java
com.online.util.FastJsonUtil.java——工具類


db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatisdb?allowMultiQueries=true
jdbc.username=root
jdbc.password=123456
jdbc.initialPoolSize=30
jdbc.minPoolSize=10
jdbc.maxPoolSize=100
jdbc.acquireIncrement=5
jdbc.maxStatements=1000
jdbc.maxStatementsPerConnection=10

log4j.properties

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=info, CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:/axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

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 ==> lastName    -->
      <setting name="mapUnderscoreToCamelCase" value="true"/>
      <!-- 開啟延遲載入 -->
      <setting name="lazyLoadingEnabled" value="true"/>
      <!-- 指定載入的屬性是按需載入 -->
      <setting name="aggressiveLazyLoading" value="false"/>
      <!-- 二級快取 -->
      <setting name="cacheEnabled" value="true"/>
   </settings>

   <!--使用typeAliases配置別名,它只能配置domain中類的別名 -->
   <typeAliases>
      <package name="com.online.domain"/>
   </typeAliases>

   <!--分頁外掛-->
   <plugins>
      <plugin interceptor="com.github.pagehelper.PageInterceptor"></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:context="http://www.springframework.org/schema/context"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="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.xsd
   http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx.xsd">

   <!--開啟註解的掃描,希望處理service和dao,controller不需要Spring框架去處理-->
   <context:component-scan base-package="com.online">
      <!--配置哪些註解不掃描-->
      <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
   </context:component-scan>

   <!--Spring整合MyBatis框架-->
   <!-- 讀取外部檔案 -->
   <context:property-placeholder location="classpath:/db.properties"/>

   <!--配置C3P0連線池-->
   <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
      <property name="user" value="${jdbc.username}"/>
      <property name="password" value="${jdbc.password}"/>
      <property name="jdbcUrl" value="${jdbc.url}"/>
      <property name="driverClass" value="${jdbc.driver}"/>
      <property name="initialPoolSize" value="${jdbc.initialPoolSize}"/>
      <property name="minPoolSize" value="${jdbc.minPoolSize}"/>
      <property name="maxPoolSize" value="${jdbc.maxPoolSize}"/>
      <property name="acquireIncrement" value="${jdbc.acquireIncrement}"/>
      <property name="maxStatements" value="${jdbc.maxStatements}"/>
      <property name="maxStatementsPerConnection" value="${jdbc.maxStatementsPerConnection}"/>
   </bean>

   <!--配置SqlSessionFactory工廠-->
   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <!-- 注入資料來源 -->
      <property name="dataSource" ref="dataSource"></property>
      <!-- 指定MyBatis的全域性配置檔案 -->
      <property name="configLocation" value="classpath:mybatis-config.xml"></property>
      <!-- 指定sql對映檔案。一般情況下沒意義,如果mapper類和mapper.xml不在同一個路徑下時,就有意義了 -->
      <property name="mapperLocations" value="classpath:com/online/dao/*.xml"></property>
   </bean>

   <!--配置Dao層介面所在包-->
   <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property name="basePackage" value="com.online.dao"/>
   </bean>

   <!--配置Spring框架宣告式事務管理-->
   <!--配置事務管理器-->
   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource" ref="dataSource"/>
   </bean>

   <!--配置事務通知-->
   <tx:advice id="txAdvice" transaction-manager="transactionManager">
      <!--        <tx:attributes>
               <tx:method name="find*" read-only="true"/>
               <tx:method name="*" isolation="DEFAULT"/>
            </tx:attributes>-->
   </tx:advice>

   <!--配置AOP增強-->
   <aop:config>
      <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.online.service.impl.*ServiceImpl.*(..))"/>
   </aop:config>

</beans>

springmvc-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xmlns:context="http://www.springframework.org/schema/context"
      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
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

   <!--開啟註解掃描,只掃描Controller註解-->
   <context:component-scan base-package="com.online" use-default-filters="false">
      <!-- 只掃描SpringMVC相關的元件 -->
      <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
   </context:component-scan>

   <!--配置的檢視解析器物件-->
   <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/"/>
      <property name="suffix" value=".jsp"/>
   </bean>

   <!--配置檔案解析器物件-->
   <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
      <property name="maxUploadSize" value="10485760"/>
   </bean>

   <!--
      &lt;!&ndash; @ResponseBody 轉化json &ndash;&gt;
      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
         <property name="messageConverters">
            <list>
               &lt;!&ndash; json檢視攔截器,讀取到@ResponseBody的時候去配置它 &ndash;&gt;
               <ref bean="mappingJacksonHttpMessageConverter"/>
            </list>
         </property>
      </bean>
      &lt;!&ndash; json轉化器,它可以將結果轉化 &ndash;&gt;
      <bean id="mappingJacksonHttpMessageConverter"
           class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
         <property name="supportedMediaTypes">
            <list>
               <value>application/json;charset=UTF-8</value>
            </list>
         </property>
      </bean>
   -->

   <!--過濾靜態資源-->
   <mvc:default-servlet-handler/>
   <!--開啟SpringMVC註解的支援-->
   <mvc:annotation-driven/>
</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://java.sun.com/xml/ns/javaee"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
       version="3.0">

   <display-name>Archetype Created Web Application</display-name>

   <!--配置Spring的監聽器,預設只加載WEB-INF目錄下的spring-context.xml配置檔案-->
   <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
   <!--設定配置檔案的路徑-->
   <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-context.xml</param-value>
   </context-param>

   <!--解決中文亂碼的過濾器-->
   <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>

   <!-- 支援 rest 風格 -->
   <filter>
      <filter-name>HiddenHttpMethodFilter</filter-name>
      <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
   </filter>
   <filter-mapping>
      <filter-name>HiddenHttpMethodFilter</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>

   <!--配置前端控制器-->
   <servlet>
      <servlet-name>dispatcherServlet</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <!--載入springmvc.xml配置檔案-->
      <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:springmvc-context.xml</param-value>
      </init-param>
      <!--啟動伺服器,建立該servlet-->
      <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
      <servlet-name>dispatcherServlet</servlet-name>
      <url-pattern>/</url-pattern>
   </servlet-mapping>

   <!--錯誤頁面-->
   <error-page>
      <error-code>404</error-code>
      <location>/resources/page/404.html</location>
   </error-page>
   <error-page>
      <error-code>500</error-code>
      <location>/resources/page/404.html</location>
   </error-page>

   <!-- welcome -->
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>
</web-app>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.online</groupId>
   <artifactId>onlineschool</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>war</packaging>
   <name>onlineschool Maven Webapp</name>
   <!-- FIXME change it to the project's website -->
   <url>http://www.example.com</url>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <junit.version>4.12</junit.version>
      <spring.version>4.0.0.RELEASE</spring.version>
      <mybatis.version>3.4.1</mybatis.version>
      <mybatis-generator.version>1.3.2</mybatis-generator.version>
      <mybatis-spring.version>1.3.0</mybatis-spring.version>
      <mysql.version>5.1.37</mysql.version>
      <c3p0.version>0.9.5.2</c3p0.version>
      <fastjson.version>1.2.31</fastjson.version>
      <slf4j.version>1.7.7</slf4j.version>
      <log4j.version>1.2.17</log4j.version>
      <taglibs.version>1.1.2</taglibs.version>
      <jack.version>2.7.3</jack.version>
      <aglibs-standard.version>1.2.1</aglibs-standard.version>
   </properties>

   <dependencies>
      <!-- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId>
         <version>${spring.version}</version> </dependency> -->
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-aspects</artifactId>
         <version>4.0.6.RELEASE</version>
      </dependency>

      <dependency>
         <groupId>net.sourceforge.cglib</groupId>
         <artifactId>com.springsource.net.sf.cglib</artifactId>
         <version>2.2.0</version>
      </dependency>

      <dependency>
         <groupId>org.aopalliance</groupId>
         <artifactId>com.springsource.org.aopalliance</artifactId>
         <version>1.0.0</version>
      </dependency>

      <dependency>
         <groupId>org.aspectj</groupId>
         <artifactId>com.springsource.org.aspectj.weaver</artifactId>
         <version>1.6.8.RELEASE</version>
      </dependency>

      <!-- https://mvnrepository.com/artifact/com.github.jsqlparser/jsqlparser -->
      <dependency>
         <groupId>com.github.jsqlparser</groupId>
         <artifactId>jsqlparser</artifactId>
         <version>0.9.5</version>
      </dependency>

      <dependency>
         <groupId>commons-logging</groupId>
         <artifactId>commons-logging</artifactId>
         <version>1.1.3</version>
      </dependency>

      <dependency>
         <groupId>com.github.pagehelper</groupId>
         <artifactId>pagehelper</artifactId>
         <version>5.0.0</version>
      </dependency>

      <dependency>
         <groupId>org.apache.taglibs</groupId>
         <artifactId>taglibs-standard-impl</artifactId>
         <version>${aglibs-standard.version}</version>
      </dependency>

      <dependency>
         <groupId>org.apache.taglibs</groupId>
         <artifactId>taglibs-standard-spec</artifactId>
         <version>${aglibs-standard.version}</version>
      </dependency>

      <!-- 單元測試 -->
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>${junit.version}</version>
      </dependency>

      <!-- 反向生成 -->
      <dependency>
         <groupId>org.mybatis.generator</groupId>
         <artifactId>mybatis-generator-core</artifactId>
         <version>${mybatis-generator.version}</version>
      </dependency>

      <!-- 驗證 -->
      <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-validator</artifactId>
         <version>5.2.4.Final</version>
      </dependency>

      <!--json所需要的依賴 開始 -->
      <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-core</artifactId>
         <version>${jack.version}</version>
      </dependency>

      <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-databind</artifactId>
         <version>${jack.version}</version>
      </dependency>

      <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-annotations</artifactId>
         <version>${jack.version}</version>
      </dependency>

      <dependency>
         <groupId>org.codehaus.jackson</groupId>
         <artifactId>jackson-mapper-asl</artifactId>
         <version>1.9.13</version>
      </dependency>

      <!--json所需要的依賴 結束 -->
      <dependency>
         <groupId>javax.validation</groupId>
         <artifactId>validation-api</artifactId>
         <version>2.0.1.Final</version>
      </dependency>

      <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
         <version>${fastjson.version}</version>
      </dependency>

      <!-- spring核心包 -->
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-core</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-web</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-webmvc</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-expression</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-oxm</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-tx</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-orm</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-jdbc</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-beans</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-aop</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-context-support</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-context</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-test</artifactId>
         <version>${spring.version}</version>
      </dependency>

      <!-- mybatis核心包 -->
      <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis</artifactId>
         <version>${mybatis.version}</version>
      </dependency>

      <!-- mybatis/spring包 -->
      <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis-spring</artifactId>
         <version>${mybatis-spring.version}</version>
      </dependency>

      <!-- 匯入Mysql資料庫連結jar包 -->
      <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>${mysql.version}</version>
      </dependency>

      <!-- 匯入dbcp的jar包,用來在applicationContext.xml中配置資料庫 -->
      <dependency>
         <groupId>commons-dbcp</groupId>
         <artifactId>commons-dbcp</artifactId>
         <version>1.2.2</version>
      </dependency>

      <!-- JSTL標籤類 -->
      <dependency>
         <groupId>jstl</groupId>
         <artifactId>jstl</artifactId>
         <version>1.2</version>
      </dependency>

      <!-- 日誌檔案管理包 -->
      <!-- log start -->
      <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>${log4j.version}</version>
      </dependency>

      <!-- 資料連線池 -->
      <dependency>
         <groupId>com.mchange</groupId>
         <artifactId>c3p0</artifactId>
         <version>${c3p0.version}</version>
      </dependency>

      <dependency>
         <groupId>taglibs</groupId>
         <artifactId>standard</artifactId>
         <version>${taglibs.version}</version>
      </dependency>

      <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
         <version>${slf4j.version}</version>
      </dependency>

      <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-log4j12</artifactId>
         <version>${slf4j.version}</version>
      </dependency>

      <dependency>
         <groupId>javax.servlet.jsp</groupId>
         <artifactId>javax.servlet.jsp-api</artifactId>
         <version>2.3.1</version>
         <scope>provided</scope>
      </dependency>

      <!-- 匯入servlet-api/jsp -->
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
         <scope>provided</scope>
      </dependency>

      <!-- 匯入javaee jar 包 -->
      <dependency>
         <groupId>javax</groupId>
         <artifactId>javaee-api</artifactId>
         <version>7.0</version>
         <scope>provided</scope>
      </dependency>

      <!--檔案上傳-->
      <dependency>
         <groupId>commons-fileupload</groupId>
         <artifactId>commons-fileupload</artifactId>
         <version>1.3.1</version>
      </dependency>

   </dependencies>

   <build>
      <finalName>onlineschool</finalName>
      <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
         <plugins>
            <plugin>
               <artifactId>maven-clean-plugin</artifactId>
               <version>3.0.0</version>
            </plugin>
            <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
            <plugin>
               <artifactId>maven-resources-plugin</artifactId>
               <version>3.0.2</version>
            </plugin>
            <plugin>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>3.7.0</version>
            </plugin>
            <plugin>
               <artifactId>maven-surefire-plugin</artifactId>
               <version>2.20.1</version>
            </plugin>
            <plugin>
               <artifactId>maven-war-plugin</artifactId>
               <version>3.2.0</version>
            </plugin>
            <plugin>
               <artifactId>maven-install-plugin</artifactId>
               <version>2.5.2</version>
            </plugin>
            <plugin>
               <artifactId>maven-deploy-plugin</artifactId>
               <version>2.8.2</version>
            </plugin>
         </plugins>
      </pluginManagement>
      <plugins>
         <!-- Run As → Maven Build → tomcat7:run -Dmaven.tomcat.port=8080 -->
         <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
               <!-- 指定埠 -->
               <port>8080</port>
               <!-- 請求路徑 -->
               <path>/xiaobaicai</path>
               <ignorePackaging>true</ignorePackaging>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.8</version>
            <executions>
               <execution>
                  <id>copy</id>
                  <phase>install</phase>
                  <goals>
                     <goal>copy-dependencies</goal>
                  </goals>
                  <configuration>
                     <outputDirectory>${project.build.directory}/lib</outputDirectory>
                  </configuration>
               </execution>
            </executions>
         </plugin>
      </plugins>
   </build>
</project>

Java包配置:om.online. ontroller.StudentController.java

@Controller
@RequestMapping("/student")
public class StudentController {

    @Autowired
    private StudentService studentService;
}

com.online.dao.StudentDao.java

public interface StudentDao {
    //查詢使用者總數
    int findCount();
}

com.online.domain.Student.java

public class Student {
    private int id;
    public int getId() {return id;}
    public void setId(int id) {this.id = id;}
}

com.online.service.StudentService.java

public interface StudentService {
    //查詢學生總數
    int findCount();
}

com.online.service.impl.StudentServiceImpl.java

@Service("studnetService")
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentDao studentDao;//查詢學生總數
    public int findCount() {
        return studentDao.findCount();
    }
}

com.online.util.FastJsonUtil.java——工具類

import java.util.List;
import com.alibaba.fastjson.JSON;

//針對泛型不能封裝Map
public class FastJsonUtil {

   /**
    * 任意物件轉json字串
    */
   public static String object_to_json(Object object) {
      return JSON.toJSONString(object);
   }

   /**
    * json字串轉普通java物件
    */
   public static <T> T json_to_object(String json, Class<T> clazz) {
      return JSON.parseObject(json, clazz);
   }

   /**
    * json字串轉List物件
    * @param <T>
    */
   public static <T> List<T> json_to_list(String json, Class<T> clazz) {
      return JSON.parseArray(json, clazz);
   }
}