1. 程式人生 > >在IDEA中搭建SSM框架,利用maven對jar包進行依賴管理

在IDEA中搭建SSM框架,利用maven對jar包進行依賴管理

        本教程作為一個學習的記錄過程,讓大家快速學會在IDEA中利用maven搭建一個SSM框架。

1.準備工作

首先開啟IDEA建立一個maven專案,如下所示。


點選下一步


點選下一步


最後一步


專案建立好了之後的結構是這樣的:


開啟這個專案的pom.xml檔案,刪除<build>這個標籤裡面的所有內容,同時也刪除這個標籤,然後修改

<properties>標籤裡面的內容,修改的內容如下所示:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!--指定jdk的編譯環境-->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <!--指定所用spring系列jar包的版本-->
    <spring.version>4.1.4.RELEASE</spring.version>
</properties>

在main下面新建兩個資料夾java(用來編寫java程式碼)和resources(用來存放配置檔案)


然後把這連個資料夾變成資原始檔夾


接下來看圖


接下來,在src目錄下新建一個test資料夾(用來測試的),然後再test資料夾下面新建一個java和resources資料夾,按照和上面同樣的方法把這兩個資料夾變成資原始檔夾,不過和上面不同的是,這裡要把這兩個資料夾變成測試環境的資原始檔夾,而不是正式編碼的環境,如下圖所示:


測試資料夾下的東西在釋出專案的時候不會被髮布出去

在弄好資原始檔夾後和我的對比一下看是否和我一樣,如果不一樣說明大家弄錯了哦!


在做好這些準備工作後,我們開始來正式搭建SSM的開發環境

1.搭建spring開發環境

1.1:在pom.xml檔案中新增spring所依賴jar包以及在test資料夾下的resources資料夾下建立spring配置檔案
        <!-- spring start -->
        <dependency>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</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-core</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-jdbc</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-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-websocket</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc-portlet</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</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-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-instrument-tomcat</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-instrument</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-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- spring end-->


再新增junit測試所依賴的jar包

<!--junit測試所需jar包-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
1.2:在Spring配置檔案中新增bean,java.util.Date

    

在test資料夾下的java資料夾中建立一個類TestSSM用於測試


1.3:使用Junit4進行測試,正確輸出日期則Spring環境搭建成功

執行這個方法,看看控制檯是否能夠正確的輸出日期時間


如果控制檯正確輸出日期,說明我們能夠從spring容器中獲取到bean,即spring環境搭建成功。

接下來進行下一步

2.搭建mybatis開發環境

2.1:準備好要用到的資料庫和表(自己建立好自己測試需要用到的資料庫和表)
2.2:建立實體bean ItripHotelRoom(根據自己的實際情況而定,每個人所用的資料庫和表都不一樣)
2.3:在pom.xml檔案新增mybatis所依賴的jar包以及建立mybatis的配置檔案mybatis-config.xml,
新增mysql驅動包
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.0.5</version>
</dependency>
<!-- mysql驅動包 -->
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.31</version>
</dependency>
2.4:建立mybatis的dao層介面ItripHotelRoomMapper以及建立ItripHotelRoomMapper.xml配置檔案
package com.haijian.mapper;

import com.haijian.model.ItripHotelRoom;

import java.util.List;

/**
 * Created by MrXi on 2018/5/6.
 */
public interface ItripHotelRoomMapper {
    //查詢所有酒店房間
    public List<ItripHotelRoom> queryAll();
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.haijian.mapper.ItripHotelRoomMapper">

    <select id="queryAll" resultType="com.haijian.model.ItripHotelRoom">
        select
                id as id,
                hotelId as hotelId,
                roomTitle as roomTitle,
                roomPrice as roomPrice,
                roomBedTypeId as roomBedTypeId,
                isHavingBreakfast as isHavingBreakfast,
                payType as payType,
                satisfaction as satisfaction,
                isBook as isBook,
                isCancel as isCancel,
                isTimelyResponse as isTimelyResponse,
                creationDate as creationDate,
                createdBy as createdBy,
                modifyDate as modifyDate,
                modifiedBy as modifiedBy
        from itrip_hotel_room
    </select>
</mapper>
2.5:將mapper.xml檔案註冊到mybatis配置檔案中
<?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>
	<!-- 配置mybatis資料來源 -->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://127.0.0.1:3306/itripdb" />
				<property name="username" value="root" />
				<property name="password" value="123" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="mapper-xml/ItripHotelRoomMapper.xml"/>
	</mappers>
</configuration>  
2.6:使用Junit4進行測試,在測試類TestSSM中編寫測試方法testMyBatis()查詢資訊,
正常輸出資料則mybatis環境搭建成功
    @Test
    public void testMyBatis() throws IOException {
        //載入mybatis配置檔案獲取sqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().
                build(Resources.getResourceAsStream("mybatis-config.xml"));
        //通過sqlSessionFactory獲取sqlSession(sqlSession表示與資料庫的一次會話)
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //獲取mapper(dao層介面的代理物件)
        ItripHotelRoomMapper itripHotelRoomMapper =
                sqlSession.getMapper(ItripHotelRoomMapper.class);
        //呼叫方法進行查詢資料
        List<ItripHotelRoom> itripHotelRooms = itripHotelRoomMapper.queryAll();
        //遍歷輸出結果
        for (ItripHotelRoom itripHotelRoom : itripHotelRooms) {
            System.out.println("%%%%%%"+itripHotelRoom.getRoomTitle());
        }
        //關閉sqlSession
        sqlSession.close();
    }

3.整合spring和mybatis

在pom.xml檔案中新增spring整合mybatis所依賴的jar包
    <!--spring整合mybatis所依賴的jar包-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.0.1</version>
    </dependency>
3.1:編寫spring配置檔案
    3.1.0:配置註解掃描
    3.1.2:配置c3p0資料來源
    3.1.2:配置sessionFactory
    3.1.3:配置事務管理器
    3.1.4:配置通知和切面表示式
    3.1.5:MapperScannerConfigurer  生成mybatis介面動態代理物件
3.2:使用junit4從spring容器中獲取bean,查詢使用者資訊,正常輸出則spring和mybatis整合成功。
現在我們不在test資料夾下面建立spring配置檔案了,我們在src/main/resources資料夾下面建立spring配置檔案
applicationContext-public.xml(spring配置檔案命名可以自己定義,並不一定要寫applicationContext.xml
只不過官方推薦我們取這個名字)
接著我們建立db.propertites配置檔案,用於編寫連線資料庫的資訊
#db config
mysql.dirverClass=com.mysql.jdbc.Driver
mysql.jdbcUrl=jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8
mysql.user=root
mysql.password=123
mysql.minPoolSize=5
mysql.maxPoolSize=500
mysql.initialPoolSize=10
mysql.maxIdleTime=60
mysql.acquireIncrement=5
mysql.maxStatements=0
mysql.idleConnectionTestPeriod=60
mysql.acquireRetryAttempts=30
mysql.breakAfterAcquireFailure=false
mysql.testConnectionOnCheckout=false
由於我們需要用到c3p0資料庫連線池,所以我們需要在pom.xml檔案中新增c3p0的依賴
<!-- c3p0 資料庫連線池 start -->
<dependency>
   <groupId>c3p0</groupId>
   <artifactId>c3p0</artifactId>
   <version>0.9.0</version>
   </dependency>
<!-- c3p0 資料庫連線池 end -->
在web.xml檔案中配置spring的核心監聽器
<!--配置spring的核心監聽器-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:applicationContext-*.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
spring配置檔案
<?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:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       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/tx http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
    <!--配置註解掃描-->
    <context:component-scan base-package="com.haijian"/>
    <!--引入外部配置檔案-->
    <context:property-placeholder location="classpath*:db.properties"/>
    <!--配置資料來源-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${mysql.jdbcUrl}"/>
        <property name="driverClass" value="${mysql.dirverClass}"/>
        <property name="user" value="${mysql.user}"/>
        <property name="password" value="${mysql.password}"/>
        <!--連線池中保留的最小連線數-->
        <property name="minPoolSize" value="${mysql.minPoolSize}"/>
        <!--連線池中保留的最大連線數 預設為15-->
        <property name="maxPoolSize" value="${mysql.maxPoolSize}"/>
        <!--初始化時獲取的連線數,取值應在minPoolSize與maxPoolSize之間。Default: 3 -->
        <property name="initialPoolSize" value="${mysql.initialPoolSize}"/>
        <!--最大空閒時間,60秒內未使用則連線被丟棄。若為0則永不丟棄。Default: 0 -->
        <property name="maxIdleTime" value="${mysql.maxIdleTime}"/>
        <!--當連線池中的連線耗盡的時候c3p0一次同時獲取的連線數。Default: 3 -->
        <property name="acquireIncrement" value="${mysql.acquireIncrement}"/>
        <!--JDBC的標準引數,用以控制資料來源內載入的PreparedStatements數量。但由於預快取的statements
        屬於單個connection而不是整個連線池。所以設定這個引數需要考慮到多方面的因素。
        如果maxStatements與maxStatementsPerConnection均為0,則快取被關閉。Default: 0-->
        <property name="maxStatements" value="${mysql.maxStatements}"/>
        <!--每60秒檢查所有連線池中的空閒連線。Default: 0 -->
        <property name="idleConnectionTestPeriod" value="${mysql.idleConnectionTestPeriod}"/>
        <!--定義在從資料庫獲取新連線失敗後重復嘗試的次數。Default: 30 -->
        <property name="acquireRetryAttempts" value="${mysql.acquireRetryAttempts}"/>
        <!--獲取連線失敗將會引起所有等待連線池來獲取連線的執行緒丟擲異常。但是資料來源仍有效
         保留,並在下次呼叫getConnection()的時候繼續嘗試獲取連線。如果設為true,那麼在嘗試
         獲取連線失敗後該資料來源將申明已斷開並永久關閉。Default: false-->
        <property name="breakAfterAcquireFailure" value="${mysql.breakAfterAcquireFailure}"/>
        <!--因效能消耗大請只在需要的時候使用它。如果設為true那麼在每個connection提交的
       時候都將校驗其有效性。建議使用idleConnectionTestPeriod或automaticTestTable
       等方法來提升連線測試的效能。Default: false -->
        <property name="testConnectionOnCheckout" value="${mysql.testConnectionOnCheckout}"/>
    </bean>
    <!--配置sqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--注入資料來源-->
        <property name="dataSource" ref="dataSource"/>
        <!--配置別名-->
        <property name="typeAliasesPackage" value="com.haijian.model"/>
        <!--指定mapper.xml檔案的位置-->
        <property name="mapperLocations" value="classpath*:mapper-xml/*Mapper.xml"/>
    </bean>
    <!--配置事務管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--指定資料來源-->
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <tx:advice id="advice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="save" propagation="REQUIRED"/>
            <tx:method name="modify" propagation="REQUIRED"/>
            <tx:method name="remove" propagation="REQUIRED"/>
            <tx:method name="*" propagation="SUPPORTS"/>
        </tx:attributes>
    </tx:advice>
    <!--通知切面表示式-->
    <aop:config>
        <aop:pointcut id="pointcut" expression="execution(* com.haijian.service.*.*(..))"/>
        <aop:advisor advice-ref="advice" pointcut-ref="pointcut"/>
    </aop:config>
    <!--MapperScannerConfigurer  生成mybatis介面動態代理物件-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.haijian.mapper"/>
        <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>
</beans>
在src/java資料夾下建立com.haijian.service和com.haijian.service.impl兩個包,然後建立service介面
ItripHotelRoomService和他的實現類ItripHotelRoomServiceImpl,在介面中編寫queryAll查詢全部的方法
package com.haijian.service;

import com.haijian.model.ItripHotelRoom;

import java.util.List;

/**
 * Created by MrXi on 2018/5/6.
 */
public interface ItripHotelRoomService {

    public List<ItripHotelRoom> queryAll();
}

在實現類中,編寫它的實現方法
package com.haijian.service.impl;

import com.haijian.mapper.ItripHotelRoomMapper;
import com.haijian.model.ItripHotelRoom;
import com.haijian.service.ItripHotelRoomService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * Created by MrXi on 2018/5/6.
 */
@Service("itripHotelRoomService")
public class ItripHotelRoomServiceImpl implements ItripHotelRoomService {
    @Resource
    private ItripHotelRoomMapper itripHotelRoomMapper;

    @Override
    public List<ItripHotelRoom> queryAll() {
        return itripHotelRoomMapper.queryAll();
    }
}

在測試類TestSSM中編寫測試方法
3.2:使用junit4從spring容器中獲取bean,查詢酒店房間資訊,正常輸出則spring和mybatis整合成功。
@Resource
    private ItripHotelRoomService itripHotelRoomService;
    //測試spring和mybatis是否整合成功
    @Test
    public void testIOCAndMyBatis(){
        List<ItripHotelRoom> itripHotelRooms = itripHotelRoomService.queryAll();
        for (ItripHotelRoom itripHotelRoom : itripHotelRooms) {
            System.out.println("%%%%%%%%"+itripHotelRoom.getRoomTitle());
        }
    }

4:搭建springMVC開發環境

4.1:新增pom.xml檔案中新增springMVC依賴的jar包並建立springMVC配置檔案 4.2:編寫web.xml檔案 配置springMVC前端控制器,配置字元編碼過濾器防止中文亂碼 4.3:新增controller並編寫/query方法返回所有使用者資訊 4.4:編寫springMVC配置檔案 4.4.1:註解掃描 4.4.2:mvc註解驅動-->配置全域性訊息轉換器編碼為UTF-8 4.4.3:配置檢視解析器在之前我們就把所有spring的依賴都加到pom.xml檔案中了,這裡就不需要重複加入了,我們需要新增fastJson的依賴,
因為我們需要返回json資料到頁面
<!--新增fastjson依賴-->
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.15</version>
</dependency>
配置web.xml檔案
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <!--配置spring的核心監聽器-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:applicationContext-*.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!--配置springMVC前端控制器-->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <!--配置字元編碼過濾器-->
  <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>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>
配置springMVC配置檔案
<?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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       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">
    <!--配置註解掃描-->
    <context:component-scan base-package="com.haijian.controller"/>
    <!--配置註解驅動-->
    <mvc:annotation-driven>
        <!--配置訊息轉換器-->
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8"/>
            </bean>
            <!--把實體類轉換為Json物件-->
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <!--資料轉換型別-->
                <property name="supportedMediaTypes">
                    <list>
                        <value>application/json;charset=UTF-8</value>
                        <value>text/html;charset=UTF-8</value>
                        <value>text/plain;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    <!--配置對靜態資原始檔的處理-->
    <mvc:default-servlet-handler/>
    <!--配置檢視解析器-->
    <bean id="resourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/html/"/>
        <property name="suffix" value=".html"/>
    </bean>
</beans>

編寫controller

package com.haijian.controller;

import com.haijian.model.ItripHotelRoom;
import com.haijian.service.ItripHotelRoomService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

/**
 * Created by MrXi on 2018/5/6.
 */

@RequestMapping("/api")
public class ItripHotelRoomController {

    @Resource
    private ItripHotelRoomService itripHotelRoomService;
    
    @RequestMapping("/queryall")
    //新增這個註解返回給頁面的就是json字串
    @ResponseBody
    public List<ItripHotelRoom> queryAll(){
        return itripHotelRoomService.queryAll();
    }
}

整個專案結構


開始釋出專案,把專案跑起來看頁面是否能夠返回json資料



專案跑起來後在頁面輸入地址訪問控制器裡面的方法

頁面返回了json資料,說明我們的SSM框架搭建成功


好了到此我們的SSM框架就搭建完成了,大家可以自己擴充套件它的內容哦!謝謝大家點贊支援一下,創作不易,歡迎大家轉載

請轉載的童鞋標明原文出處,謝謝。如果大家發現了錯誤還請大家留言相告,謝謝!