当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 异常:Invalid or unexpected token
- The length of the last word in leetcode
- 一幅图像能顶16x16字!——用于大规模图像缩放识别的变压器(对ICLR 2021年论文的简要回顾)
- CUDA_共享内存、访存机制、访问优化
- Promote China manufacturing upgrade, 3D visualization of production line in automobile assembly workshop
- Guest interview: Wang Jian
- CUDA_ Shared memory, memory access mechanism, access optimization
- 接缝雕刻算法:一种看似不可能的图像大小调整方法
- Functional guide for temporary users and novices of PL / SQL developer
- Assign the corresponding key and value in the map to the object
猜你喜欢
Youtube订阅——解决在弹窗内使用Youtube订阅按钮高度显示不全的问题
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
Validation failed for one or more entities. See 'entityvalidationerrors' solution
Common settings of PLSQL developer
One image can hold 16x16 words! ——Transformers for large scale image scaling recognition (a brief review of ICLR 2021 papers)
CUDA_共享内存、访存机制、访问优化
Coding style: SSM environment in MVC mode, code hierarchical management
初级工程师如何在职场生存
IP address SSL certificate
How SSL certificate and public IP address affect SEO
随机推荐
痞子衡嵌入式:RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计
JS label syntax jumps out of multiple loops
How SSL certificate and public IP address affect SEO
DB engines database ranking in November: PostgreSQL holds the top spot in the same period
proxy 的不完整polyfill
编码风格:Mvc模式下SSM环境,代码分层管理
CUDA_存储器模型
The length of the last word in leetcode
Error running app:Default Activity not found 解决方法
Gets the property value of a column in the list collection object
SRM系统是什么系统?SRM供应商管理系统功能
会展云技术解读 | 面对突发事故,APP 如何做好崩溃分析与性能监控?
Notes on Python cookbook 3rd (2.2): String start or end match
Using tail as time series to identify whales
What can CRM system help enterprises do?
SQL case conversion, remove the space before and after
Brief analysis of LinkedList source code
Visit 2020 PG Technology Conference
Fear of reconstruction? I'm too late to tell you how to refactor. Now I'm here
For programmers, those unfamiliar and familiar computer hardware