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

4 篇文章 0 订阅
2 篇文章 0 订阅

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字段可以不要):
在这里插入图片描述

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文件
<?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.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的所有内容了
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值