【SSM】4. SSM项目的配置测试demo

目录

  • 1 版本要求
  • 2 配置
  • 3 测试代码
    • 3.1 实体类
    • 3.2 controller
    • 3.3 service
    • 3.4 mapper
  • 4 总结

1 版本要求

注意一些版本要求为(不满足可能会报404错误):

  • spring6
  • jdk17
  • tomcat10

2 配置

具体配置使用上一节内容进行项目总体配置,并进行tomcat的配置(加入部署包)
检查:
src -> main -> java文件夹下新建包为 com.example.config,具体配置文件包括:

  • 配置类
    • MyWebAppInitializer.java:总体配置类,指定web容器对应的配置类(WebMvcJavaConfig.class),root容器对应的配置类(MapperJavaConfig.class, ServiceJavaConfig.class, DataSourceJavaConfig.class)和指定dispatcherServlet处理路径,通常为 / 。本类作为子类实现了WebApplicationInitializer类,在类加载器中会优先运行WebApplicationInitializer的实现类,因此该代码最先被运行
    • WebMvcJavaConfig.java:控制层配置类
    • ServiceJavaConfig.java:业务层配置类
    • MapperJavaConfig.java:持久层配置类,负责其中的mybatis部分
    • DataSourceJavaConfig.java:持久层配置类,负责其中的数据库连接部分
  • xml文件
    • jdbc.xml
    • logback.xml
    • mybatis-config.xml

3 测试代码

3.1 实体类

后台数据库中包括这些字段(did字段可以不要):
【SSM】4. SSM项目的配置测试demo_第1张图片

src -> main -> java -> com -> example -> pojo新建Employee.java

package com.example.pojo;

import lombok.Data;

/**
 * @Author: yrf
 * @description:
 */
@Data
public class Employee {

    private Integer eid;
    private String emp_name;
    private Integer age;
    private String sex;
    private String email;
}

其中import lombok.Data;可以直接快捷使用getter和setter方法

3.2 controller

src -> main -> java -> com -> example -> controller新建EmployeeController.java

package com.example.controller;

import com.example.pojo.Employee;
import com.example.service.EmployeeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @Author: yrf
 * @description:
 */
@Slf4j
@RestController
@RequestMapping("/employee")
public class EmployeeController {
    @Autowired
    private EmployeeService employeeService;

    @RequestMapping(value = "getAll", method = RequestMethod.GET)
    public List<Employee> getAllList(){
        List<Employee> allList = employeeService.getAllList();
        return allList;
    }
}

3.3 service

分为接口和实现类

  • 接口
    src -> main -> java -> com -> example -> service新建EmployeeService.java
package com.example.service;

import com.example.pojo.Employee;

import java.util.List;

public interface EmployeeService {
    List<Employee> getAllList();
}
  • 实现类
    src -> main -> java -> com -> example -> service -> impl新建EmployeeServiceImpl.java
package com.example.service.impl;

import com.example.mapper.EmployeeMapper;
import com.example.pojo.Employee;
import com.example.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

/**
 * @Author: yrf
 * @description:
 */
@Service
public class EmployeeServiceImpl implements EmployeeService {
    @Autowired
    private EmployeeMapper employeeMapper;
    @Override
    public List<Employee> getAllList() {
        return employeeMapper.getAllList();
    }
}

注意:这里的 @Autowired private EmployeeMapper employeeMapper;会有下波浪线的报错,但是这是因为mapper使用配置类`` `MapperJavaConfig.java```进行自动装配,不能在代码未运行时进行识别,但是对代码正常运行不会产生影响

//设置mapper接口和xml文件所在的共同包
mapperScannerConfigurer.setBasePackage("com.example.mapper");

3.4 mapper

  • 接口
    src -> main -> java -> com -> example -> mapper新建接口EmployeeMapper.java
package com.example.mapper;

import com.example.pojo.Employee;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * @Author: yrf
 * @description:
 */
public interface EmployeeMapper {
    List<Employee> getAllList();
}

src -> resources -> com -> example -> mapper新建EmployeeMapper.xml,注意mapper.xml所处的资源文件夹路径要与接口所处的文件夹相对路径一样(均为com -> example -> mapper

  • xml文件

DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.EmployeeMapper">
    <select id="getAllList" resultType="Employee">
        select * from t_employee
    select>
mapper>

4 总结

以上就是一个ssm工程完整的测试demo,如果运行无误,就可以在打开http://localhost:8080/module01_war/employee/getAll界面时显示后台数据库中Employee的所有内容了
【SSM】4. SSM项目的配置测试demo_第2张图片

你可能感兴趣的:(spring,mybatis,ssm,spring,mvc,mybatis)