基于Spingboot的Web框架的环境搭建、前后端交互

  1. 配置环境

在DataBase里新建数据库,创建关联的表结构与数据

springboot项目的创建,选择maven

在java包下com.目录

用MVC三层结构解耦

1、dao(mapper)层:数据访问层 持久层

dao层属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一 一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。

负责与数据库进行联络的一些任务都封装在此,dao层的设计首先是设计dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以再模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,dao层的数据源配置,以及有关数据库连接参数都在Spring配置文件中进行配置。

2、service层:服务层

粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。

service层主要负责业务模块的应用逻辑应用设计。同样是首先设计接口,再设计其实现类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用service接口来进行业务处理。service层的业务实,具体要调用已经定义的dao层接口,封装service层业务逻辑有利于通用的业务逻辑的独立性和重复利用性。程序显得非常简洁。

3、controller层

Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

controller层负责具体的业务模块流程的控制,在此层要调用service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里进行,针对具体的业务流程,会有不同的控制器。我们具体的设计过程可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块。这样不仅使程序结构变得清晰,也大大减少了代码量。

关系

Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

Mapper层也是实现了数据访问和交换

要用@Mapper注解 也可以用注解来操作数据库如select delect put update

java 复制代码
import com.kyle.pojo.Dept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface DeptMapper {
    @Select("select * from dept")
    public List<Dept> listDept();
}

Service层

接口及实现类命名方式,接口XXXService,实现类:XXXServiceImpl。

实现类XXXServiceImpl需添加注解@Service,并指明名称,如@Service("companyService");

在实现类中,通过注解@Autowired,注入数据

typescript 复制代码
@Service
public class DeptServiceImpl implements DeptService {
    @Autowired
    private DeptMapper deptMapper;
    @Override
    public List<Dept> listDept() {

        return deptMapper.listDept();
    }
}

Controller层

注意日志的输出

@RequestMapping请求

请求的地址路径 "/***"

less 复制代码
@Slf4j
@RestController
public class DeptController {
    @Autowired
    private DeptService deptService;

    //标准日志输出格式
    //private static Logger log = (Logger) LoggerFactory.getLogger(DeptController.class);
    //或者用注解@Slf4j

    //@RequestMapping(value = "/depts",method = RequestMethod.GET)//指定请求方式GET
    //或者用
    @GetMapping("/depts")
    public Result list() {

        List<Dept> deptlist = deptService.listDept();
        log.info("查询全部部门数据");
        return Result.success(deptlist);
    }
}
相关推荐
程序员爱钓鱼1 天前
Node.js 编程实战:测试与调试 —— 调试技巧与性能分析
前端·后端·node.js
小杨同学491 天前
C 语言贪心算法实战:解决经典活动选择问题
后端
+VX:Fegn08951 天前
计算机毕业设计|基于springboot + vue物流配送中心信息化管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·小程序·课程设计
qq_12498707531 天前
基于微信小程序的宠物交易平台的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·微信小程序·小程序·毕业设计·计算机毕业设计
禹曦a1 天前
Java实战:Spring Boot 构建电商订单管理系统RESTful API
java·开发语言·spring boot·后端·restful
superman超哥1 天前
精确大小迭代器(ExactSizeIterator):Rust性能优化的隐藏利器
开发语言·后端·rust·编程语言·rust性能优化·精确大小迭代器
guchen661 天前
WPF拖拽功能问题分析与解决方案
后端
Smoothzjc1 天前
别再只把AI当聊天机器人了!揭秘大模型进化的终极形态,看完颠覆你的认知!
后端·langchain·ai编程
superman超哥1 天前
惰性求值(Lazy Evaluation)机制:Rust 中的优雅与高效
开发语言·后端·rust·编程语言·lazy evaluation·rust惰性求值