SSM整合+跨域访问

目录

SSM整合的步骤

  0)建库,建表  1)新建Maven项目

  2)修改目录

​编辑  3)修改pom.xml文件

  4)添加jdbc.properties属性文件

  5)添加SqlMapConfig.xml文件

  6)添加applicationContext_mapper.xml文件(数据访问层的核心配置文件)

  7)添加applicationContext_service.xml文件(业务逻辑层的核心配置文件)

  8)添加spirngmvc.xml文件

  9)删除web.xml文件,新建,改名,设置中文编码,并注册spirngmvc框架,并注册Spring框架

  10)新建实体类user

  11)新建UserMapper.java接口

  12)新建UserMapper.xml实现增删查所有功能,没有更新

  13)新建service接口和实现类

  14)新建测试类,完成所有功能的测试

  15)新建控制器,完成所有功能

  16)浏览器测试功能

 跨域访问


SSM整合的步骤


  0)建库,建表
  1)新建Maven项目

  2)修改目录


  3)修改pom.xml文件

<packaging>war</packaging>    
<dependencies>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.19</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.3.19</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.19</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.19</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>5.3.19</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>5.3.19</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>5.3.19</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.3.19</version>
        </dependency>

        <!-- Mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.7</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>com.github.miemiedev</groupId>-->
<!--            <artifactId>mybatis-paginator</artifactId>-->
<!--            <version>${mybatis.paginator.version}</version>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>com.github.pagehelper</groupId>-->
<!--            <artifactId>pagehelper</artifactId>-->
<!--            <version>${pagehelper.version}</version>-->
<!--        </dependency>-->
        <!-- MySql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>
        <!-- 连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.9</version>
        </dependency>

        <!-- junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>

        <!-- JSP相关 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
            <scope>provided</scope>
        </dependency>

        <!-- Jackson Json处理工具包 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.13.3</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>org.json</groupId>-->
<!--            <artifactId>json</artifactId>-->
<!--            <version>20220320</version>-->
<!--        </dependency>-->

<!--        &lt;!&ndash;    文件异步上传使用的依赖&ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>commons-io</groupId>-->
<!--            <artifactId>commons-io</artifactId>-->
<!--            <version>2.4</version>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>commons-fileupload</groupId>-->
<!--            <artifactId>commons-fileupload</artifactId>-->
<!--            <version>1.4</version>-->
<!--        </dependency>-->

<!--        日志-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.17.1</version>
        </dependency>
    </dependencies>

    <!-- 插件配置 -->
    <build>
<!--        <plugins>-->
<!--            <plugin>-->
<!--                <groupId>org.apache.maven.plugins</groupId>-->
<!--                <artifactId>maven-compiler-plugin</artifactId>-->
<!--                <configuration>-->
<!--                    <source>11</source>-->
<!--                    <target>11</target>-->
<!--                    <encoding>UTF-8</encoding>-->
<!--                </configuration>-->
<!--            </plugin>-->
<!--        </plugins>-->
        <!--识别所有的配置文件-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

  4)添加jdbc.properties属性文件

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmuser?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=


  5)添加SqlMapConfig.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">
<configuration>

<!--    设置日志输出语句,显示相应操作的sql语句名-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

</configuration>


  6)添加applicationContext_mapper.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"
       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">

    <!-- 1.导入外部的jdbc.properties文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 2.定义数据源 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="maxActive" value="10"/>
        <property name="minIdle" value="5"/>
    </bean>

    <!--3.这里使用mybatis提供的SqlSessionFactoryBean,完成了Spring与mybatis的整合-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--        配置数据源-->
        <property name="dataSource" ref="dataSource"/>
<!--        配置SqlMapConfig.xml核心配置-->
        <property name="configLocation" value="classpath:SqlMapConfig.xml"/>
<!--        注册实体类-->
        <property name="typeAliasesPackage" value="com.pojo"/>
    </bean>

    <!--4.扫描mapper接口,使用的依然是Mybatis原生的扫描器-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.mapper"/>
    </bean>

</beans>


  7)添加applicationContext_service.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: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.service.impl"/>

    <!--添加事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--配置数据源-->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--配置事务切面-->
    <tx:advice id="myadvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="*select*" read-only="true"/>
            <tx:method name="*find*" read-only="true"/>
            <tx:method name="*search*" read-only="true"/>
            <tx:method name="*get*" read-only="true"/>
            <tx:method name="*insert*" propagation="REQUIRED"/>
            <tx:method name="*add*" propagation="REQUIRED"/>
            <tx:method name="*save*" propagation="REQUIRED"/>
            <tx:method name="*set*" propagation="REQUIRED"/>
            <tx:method name="*update*" propagation="REQUIRED"/>
            <tx:method name="*change*" propagation="REQUIRED"/>
            <tx:method name="*modify*" propagation="REQUIRED"/>
            <tx:method name="*delete*" propagation="REQUIRED"/>
            <tx:method name="*drop*" propagation="REQUIRED"/>
            <tx:method name="*remove*" propagation="REQUIRED"/>
            <tx:method name="*clear*" propagation="REQUIRED"/>
            <tx:method name="*" propagation="SUPPORTS"/>
        </tx:attributes>
    </tx:advice>

    <!--配置切入点+绑定-->
    <aop:config>
<!--        绑定impl下的所有类的所有方法-->
        <aop:pointcut id="mycut" expression="execution(* com.service.impl.*.*(..))"/>
        <aop:advisor advice-ref="myadvice" pointcut-ref="mycut"/>
    </aop:config>

</beans>


  8)添加spirngmvc.xml文件

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

    <!--    扫描组件-->
    <context:component-scan base-package="com"/>

    <!--    配置视图解析器(全是ajax请求,不需要配置视图解析器)-->
<!--    <bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">-->
<!--        &lt;!&ndash;        视图解析器优先级&ndash;&gt;-->
<!--        <property name="order" value="1"/>-->
<!--        &lt;!&ndash;        解析编码&ndash;&gt;-->
<!--        <property name="characterEncoding" value="utf-8"/>-->
<!--        <property name="templateEngine">-->
<!--            <bean class="org.thymeleaf.spring5.SpringTemplateEngine">-->
<!--                <property name="templateResolver">-->
<!--                    <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">-->
<!--                        &lt;!&ndash;                        视图前缀&ndash;&gt;-->
<!--                        <property name="prefix" value="/WEB-INF/templates/"/>-->
<!--                        &lt;!&ndash;                        视图后缀&ndash;&gt;-->
<!--                        <property name="suffix" value=".html"/>-->
<!--                        <property name="templateMode" value="HTML5"/>-->
<!--                        <property name="characterEncoding" value="utf-8"/>-->
<!--                    </bean>-->
<!--                </property>-->
<!--            </bean>-->
<!--        </property>-->
<!--    </bean>-->

    <!--    视图控制器-->
    <mvc:view-controller path="/" view-name="index"/>

    <!--    开启注解驱动-->
    <mvc:annotation-driven/>

    <!--    &lt;!&ndash; 1.导入外部的jdbc.properties文件 &ndash;&gt;-->
    <!--    <context:property-placeholder location="classpath*:jdbc.properties"/>-->

    <!--    &lt;!&ndash; 2.定义数据源 &ndash;&gt;-->
    <!--    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">-->
    <!--        <property name="url" value="${jdbc.url}"/>-->
    <!--        <property name="username" value="${jdbc.username}"/>-->
    <!--        <property name="password" value="${jdbc.password}"/>-->
    <!--        <property name="driverClassName" value="${jdbc.driver}"/>-->
    <!--        <property name="maxActive" value="10"/>-->
    <!--        <property name="minIdle" value="5"/>-->
    <!--    </bean>-->

    <!--    &lt;!&ndash;3.这里使用mybatis提供的SqlSessionFactoryBean,完成了Spring与mybatis的整合&ndash;&gt;-->
    <!--    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">-->
    <!--        <property name="dataSource" ref="dataSource"/>-->
    <!--    </bean>-->

    <!--    &lt;!&ndash;4.扫描mapper接口,使用的依然是Mybatis原生的扫描器&ndash;&gt;-->
    <!--    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">-->
    <!--        <property name="basePackage" value="DAO"/>-->
    <!--    </bean>-->

</beans>


  9)删除web.xml文件,新建,改名,设置中文编码,并注册spirngmvc框架,并注册Spring框架

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">

    <!--配置springMVC的编码过滤器-->
    <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>forceRequestEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--注册SpringMVC    前端控制器-->
    <servlet>
        <servlet-name>DispatcherServlet</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>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!--注册spring-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext_*.xml</param-value>
    </context-param>
</web-app>


  10)新建实体类user

package com.pojo;


public class User {

  private String userId;
  private String cardType;
  private String cardNo;
  private String userName;
  private String userSex;
  private String userAge;
  private String userRole;


  public String getUserId() {
    return userId;
  }

  public void setUserId(String userId) {
    this.userId = userId;
  }


  public String getCardType() {
    return cardType;
  }

  public void setCardType(String cardType) {
    this.cardType = cardType;
  }


  public String getCardNo() {
    return cardNo;
  }

  public void setCardNo(String cardNo) {
    this.cardNo = cardNo;
  }


  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }


  public String getUserSex() {
    return userSex;
  }

  public void setUserSex(String userSex) {
    this.userSex = userSex;
  }


  public String getUserAge() {
    return userAge;
  }

  public void setUserAge(String userAge) {
    this.userAge = userAge;
  }


  public String getUserRole() {
    return userRole;
  }

  public void setUserRole(String userRole) {
    this.userRole = userRole;
  }

  public User() {
  }

  public User(String userId, String cardType, String cardNo, String userName, String userSex, String userAge, String userRole) {
    this.userId = userId;
    this.cardType = cardType;
    this.cardNo = cardNo;
    this.userName = userName;
    this.userSex = userSex;
    this.userAge = userAge;
    this.userRole = userRole;
  }

  @Override
  public String toString() {
    return "User{" +
            "userId='" + userId + '\'' +
            ", cardType='" + cardType + '\'' +
            ", cardNo='" + cardNo + '\'' +
            ", userName='" + userName + '\'' +
            ", userSex='" + userSex + '\'' +
            ", userAge='" + userAge + '\'' +
            ", userRole='" + userRole + '\'' +
            '}';
  }
}


  11)新建UserMapper.java接口

package com.mapper;

import com.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper {
    /**
     * 分页查询
     * @param userName
     * @param userSex
     * @param startRow
     * @return
     */
    List<User> selectUserPage(
            @Param("userName")
            String userName,
            @Param("userSex")
            String userSex,
            @Param("startRow")  //算好的起始行
            int startRow );

    /**
     * 添加
     * @param user
     * @return
     */
    int createUser(User user);

    /**
     * 删除
     * @param userId
     * @return
     */
    int deleteUserById(String userId);

    /**
     * 获得总页数
     * @param userName
     * @param userSex
     * @return
     */
    int getRowCount(@Param("userName")
                    String userName,
                    @Param("userSex")
                    String userSex);

}


  12)新建UserMapper.xml实现增删查所有功能,没有更新

<?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.mapper.UserMapper">
<!--    实体类与表名映射
  private String userId;
  private String cardType;
  private String cardNo;
  private String userName;
  private String userSex;
  private String userAge;
  private String userRole;-->
    <resultMap id="usermap" type="user">
        <id property="userId" column="user_id"></id>
        <result property="cardNo" column="card_no"></result>
        <result property="cardType" column="card_type"></result>
        <result property="userName" column="user_name"></result>
        <result property="userSex" column="user_sex"></result>
        <result property="userAge" column="user_age"></result>
        <result property="userRole" column="user_role"></result>
    </resultMap>

<!--    定义全部列名-->
    <sql id="allColumns">
        user_id,card_type,card_no,user_name,user_sex,user_age,user_role
    </sql>
    <!-- 需要执行的sql语句,例如select,insert,update,delete,-->

<!--    分页查询-->
    <select id="selectUserPage" resultMap="usermap">
        select <include refid="allColumns"></include>
        from user
        <where>
            <if test="userName != null and userName != ''">
                and user_name like concat('%',#{userName},'%')
            </if>
            <if test="userSex !=null and userSex != ''">
                and user_sex = #{userSex}
            </if>
        </where>
        limit #{startRow},5
    </select>

<!--    插入-->
    <insert id="createUser" parameterType="user">
        insert into user values (#{userId},#{cardType},
                                 #{cardNo},#{userName},
                                 #{userSex},#{userAge},
                                 #{userRole})
    </insert>

<!--    删除-->
    <delete id="deleteUserById" parameterType="user">
        delete from user where user_id = #{userId}
    </delete>
    
<!--    计算总行数-->
    <select id="getRowCount" resultType="int">
        select count(*)
        from user
        <where>
            <if test="userName != null and userName != ''">
                and user_name like concat('%',#{userName},'%')
            </if>
            <if test="userSex !=null and userSex != ''">
                and user_sex = #{userSex}
            </if>
        </where>
    </select>
</mapper>


  13)新建service接口和实现类

package com.service;

import com.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserService {
    List<User> selectUserPage(String userName,String userSex,int startRow );

    int createUser(User user);

    int deleteUserById(String userId);

    int getRowCount(String userName,String userSex);
}
package com.service.impl;

import com.mapper.UserMapper;
import com.pojo.User;
import com.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {

//    注入数据访问层对象
    @Autowired
    UserMapper userMapper;

    @Override
    public List<User> selectUserPage(String userName, String userSex, int startRow) {
        return userMapper.selectUserPage(userName,userSex,startRow);
    }

    @Override
    public int createUser(User user) {
        return userMapper.createUser(user);
    }

    @Override
    public int deleteUserById(String userId) {
        return userMapper.deleteUserById(userId);
    }

    @Override
    public int getRowCount(String userName, String userSex) {
        return userMapper.getRowCount(userName,userSex);
    }
}


  14)新建测试类,完成所有功能的测试

import com.pojo.User;
import com.service.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)//启动spring容器
@ContextConfiguration(locations = {"classpath:applicationContext_mapper.xml",
        "classpath:applicationContext_service.xml"})
public class MyTest {
    @Autowired
    UserService userService;

    @Test
    public void testSelectUserPage(){
        List<User> list = userService.selectUserPage(null,"男",0);
//        list.forEach(user -> System.out.println(user));
        list.forEach(System.out::println);
    }

    @Test
    public void testCreateUser(){
        User user = new User("125412145214547845","身份证","121451245784","哈哈","男","23","工人");
        int num = userService.createUser(user);
        System.out.println(num);
    }

    @Test
    public void testDeleteUserById(){
        int num = userService.deleteUserById("15968162087363060");
        System.out.println(num);
    }

    @Test
    public void testGetRowCount(){
        int num = userService.getRowCount(null,null);
        System.out.println(num);
    }

}


  15)新建控制器,完成所有功能

第一种:当方法的响应为数据时(如ajax请求)添加@ResponseBody注解

package com.controller;

import com.pojo.User;
import com.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {
    //业务逻辑层对象
    @Autowired
    UserService userService;

    //页面数据量
    public static final int PAGE_SIZE = 5;

    //分页查询
    @RequestMapping("/selectUserPage")
    @ResponseBody
    public List<User> selectUserPage(String userName, String userSex, Integer page) {
        //根据页码计算起始行
        int startRow = 0;
        if (page != null) {
            startRow = (page - 1) * PAGE_SIZE;
        }
        return userService.selectUserPage(userName, userSex, startRow);
    }

    //查询总条数
    @RequestMapping("/getRowCount")
    @ResponseBody
    public int getRowCount(String userName, String userSex) {
        return userService.getRowCount(userName, userSex);
    }

    //根据id删除
    @RequestMapping("/deleteUserById")
    @ResponseBody
    public int getRowCount(String userId) {
        return userService.deleteUserById(userId);
    }

    //增加用户
    @RequestMapping("/createUser")
    @ResponseBody
    public int createUser(User user) {
        String userId = System.currentTimeMillis()+"";
        user.setUserId(userId);
        return userService.createUser(user);
    }
}

第二种:当一个控制器的所有方法都是ajax请求时(如前后端分离,前端使用vue),可将@Controller注解改成@RestController,可省略方法的@ResponseBody注解

package com.controller;

import com.pojo.User;
import com.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {
    //业务逻辑层对象
    @Autowired
    UserService userService;

    //页面数据量
    public static final int PAGE_SIZE = 5;

    //分页查询
    @RequestMapping("/selectUserPage")
    public List<User> selectUserPage(String userName, String userSex, Integer page) {
        //根据页码计算起始行
        int startRow = 0;
        if (page != null) {
            startRow = (page - 1) * PAGE_SIZE;
        }
        return userService.selectUserPage(userName, userSex, startRow);
    }

    //查询总条数
    @RequestMapping("/getRowCount")
    public int getRowCount(String userName, String userSex) {
        return userService.getRowCount(userName, userSex);
    }

    //根据id删除
    @RequestMapping("/deleteUserById")
    public int getRowCount(String userId) {
        return userService.deleteUserById(userId);
    }

    //增加用户
    @RequestMapping("/createUser")
    public int createUser(User user) {
        String userId = System.currentTimeMillis()+"";
        user.setUserId(userId);
        return userService.createUser(user);
    }
}

  16)浏览器测试功能

 

 跨域访问

在控制器类添加@CrossOrigin在服务器端以支持跨域访问

 修改Tomcat的端口,以免与前端冲突

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值