当前位置:网站首页>Coding style: SSM environment in MVC mode, code hierarchical management
Coding style: SSM environment in MVC mode, code hierarchical management
2020-11-10 00:28:00 【Irving the procedural ape】
In this paper, the source code :GitHub· Click here || GitEE· Click here
One 、 Layering strategy
MVC Pattern and code layering strategy ,MVC The full name is ModelViewController The model - View - controller , As a software design paradigm , Using a business logic 、 data 、 The interface displays the separated method organization code , Gather business logic into a component , While improving and personalizing the interface and user interaction , No need to rewrite business logic , It's a development model , But it's not the layered pattern of code in actual development , Usually SSM The framework's back-end code layers are as follows :

- controller Control layer : Define the server interface , In and out , And some input parameters ;
- service Business services layer : Assemble business logic , Business verification , The parameter model needed to build the control layer ;
- dao Data interaction layer : Provide the data query method needed by the service layer , Dealing with logic related to data interaction conditions ;
- mapper Persistence layer : be based on mybatis The framework needs native support , The most commonly used persistence layer component at present ;
Two 、 Control layer
1、Rest The interface style
Based on the logic of resource access and processing , Use different styles of annotations . For example, new resources , to update , Inquire about , Delete .
/** * newly added */@PostMapping("/insert")public Integer insert (@RequestBody BaseInfo baseInfo){ return baseInfoService.insert(baseInfo);}/** * to update */@PutMapping("/update/{id}")public String update(@PathVariable(value = "id") Integer id, @RequestBody BaseInfo baseInfo) { if (id<1){ return "error"; } baseInfo.setId(id); return "update="+baseInfoService.update(baseInfo);}/** * Primary key query */@GetMapping("/detail/{id}")public InfoModel detail(@PathVariable(value = "id") Integer id) { return baseInfoService.detail(id) ;}/** * Delete primary key */@DeleteMapping("/delete/{id}")public String delete(@PathVariable(value = "id") Integer id) { baseInfoService.delete(id) ; return "SUS" ;}
2、 Interface reuse
High reuse of interfaces is not recommended , For example, add, delete, modify and check all the interfaces , The basic principle of , Different client side operations , For independent interfaces .
/** * List loading */@GetMapping("/list")public List<BaseInfo> list() { return baseInfoService.list(new BaseInfoExample()) ;}/** * List search */@PostMapping("/search")public List<BaseInfo> search (@RequestParam("userName") String userName, @RequestParam("phone") String phone) { return baseInfoService.search(userName,phone) ;}
For example, common list Interface ,list Usually, there will be conditional loading search Mechanism , And the search criteria are complex , It is suggested that there are two interfaces , From a practical point of view , Most of the scenarios are only used list Interface , Rarely used search Search for .
3、 In and out
Verification client must be conditional , For example, a certain condition is required , If there are questions , Quickly block the request link , The program entrance control layer intercepts and returns .
@PutMapping("/update/{id}")public String update(@PathVariable(value = "id") Integer id, @RequestBody BaseInfo baseInfo) { if (id<1){ return "error"; } baseInfo.setId(id); return "update="+baseInfoService.update(baseInfo);}
The parameters are less than three , It can be displayed directly into the reference , If there are three or more parameters, entity classes can be used to encapsulate them .
@PostMapping("/search")public List<BaseInfo> search (@RequestParam("userName") String userName, @RequestParam("phone") String phone) { return baseInfoService.search(userName,phone) ;}
4、 Processing parameters
The basic principle of the processing degree of the output parameter format , Servers as public resources , Avoid unnecessary operations , For example, the client can judge whether the return value is empty ,null etc. , Or some common format processing , Use the client to share the server pressure properly .
3、 ... and 、 Business services layer
1、 Business verification
For example, pass in the order number , Through the database layer query , No order data , This is called a business nature exception , There's no problem with the code itself , But business logic doesn't work properly .
public InfoModel detail(Integer id){ BaseInfo baseInfo = baseInfoDao.selectByPrimaryKey(id) ; if .........
版权声明
本文为[Irving the procedural ape]所创,转载请带上原文链接,感谢
边栏推荐
- 解决Coursera视频无法观看的三种方法(亲测有效)
- 2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
- SRM系统是什么系统?SRM供应商管理系统功能
- 接缝雕刻算法:一种看似不可能的图像大小调整方法
- 嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:王健
- 会展云技术解读 | 面对突发事故,APP 如何做好崩溃分析与性能监控?
- pytorch训练GAN时的detach()
- Error running app: default activity not found solution
- If you need a million objects
- CUDA_ Host memory
猜你喜欢

What can CRM system help enterprises do?

利用尾巴作为时间序列进行处理来识别鲸鱼

《Python Cookbook 3rd》笔记(2.1):使用多个界定符分割字符串

How SSL certificate and public IP address affect SEO

Interviewer: what are cache penetration, cache avalanche and cache breakdown?

【LeetCode】 92 整数反转

编码风格:Mvc模式下SSM环境,代码分层管理

会展云技术解读 | 面对突发事故,APP 如何做好崩溃分析与性能监控?

必看!RDS 数据库入门一本通(附网盘链接)

Optimization of commodity backstage system
随机推荐
Come and learn! Development Guide for personalized recommendation system (with internet disk link)
Using tail as time series to identify whales
CUDA_寄存器和局部存储器
leetcode之最后一个单词的长度
2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
一幅图像能顶16x16字!——用于大规模图像缩放识别的变压器(对ICLR 2021年论文的简要回顾)
ES6, ES7, es8 Learning Guide
将Map中对应的key和value赋值到对象中
Error running app: default activity not found solution
Raspberry pie drum set WiFi
CUDA_获取指定设备
Algorithm template arrangement (1)
sql 大小写转换,去掉前后空格
Coding style: SSM environment in MVC mode, code hierarchical management
一个名为不安全的类Unsafe
CUDA_ Host memory
Visit 2020 PG Technology Conference
Formal class D25
If you need a million objects
那么当下的行情投资者该怎么办呢? 现在新的投资风口来了!