一、Lombok工具包下载
⚠️工具包下载:推荐不要下载太新的(较高的),也不要太旧,选择一个使用人多的。
二、前后端互联的图书管理系统
规范
1.登录
参数:无
package com.example.demo.demos.web; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpSession; @RequestMapping("/user") @RestController public class UserController { @RequestMapping("/login") public Boolean login(String userName, String password, HttpSession session){ //校验参数 if(!StringUtils.hasLength(userName)||!StringUtils.hasLength(password)){ return false; } //验证账号密码是否正确 //为什么admin放在前面,因为假如userName为NULL,这样他就会报一个空指针错误,常量放在前面,开发习惯 if("admin".equals(userName)&&"admin".equals(password)){ //账号密码正确 //存session,一会在这个地方,记得要去测试一下没有session会怎么样 session.setAttribute("userName",userName); return true; } return false; } }
这个session我开始一直不理解是用来干什么的,但是现在突发奇想一个念头,他的作用是,我们之前写过的博客系统,登录界面,假如登录成功,你的用户ID会变成你的用户名,换句话说,它是从你的登录开始获取您的信息,然后去对您的信息进行一系列操作
更加深刻的理解这个session像是一个医保卡,你登录之后,你的信息服务器就获取了,然后会根据您的信息为你进行接下来的服务。
package com.example.demo.demos.web; import lombok.Data; import java.math.BigDecimal; @Data public class BookInfo { private Integer id; private String bookName; private String author; private Integer count; private BigDecimal price; private String publish; //1.表示可借阅,2.不可借阅 private Integer status; private String statusCN; }
采用list来去暂时存储这个图书管理系统,当然以后会连接数据库,这也就是一个暂时的存储
package com.example.demo.demos.web; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Random; @RestController @RequestMapping("/book") public class BookController { @RequestMapping("/getBookList") public List<BookInfo> getBookList() { //1.获取图书的数据 //2.对图书数据进行修改,针对状态码数字(0:有货,1:没货这种)进行改变,把状态码数字转换成中文 //3.返回数据 List<BookInfo> bookInfos = mockData(); for (BookInfo bookInfo : bookInfos) { if (bookInfo.getStatus() == 1) { bookInfo.setStatusCN("可借阅"); } else { bookInfo.setStatusCN("不可借阅"); } } return bookInfos; } private List<BookInfo> mockData() { List<BookInfo> bookInfos = new ArrayList<>(15); //对于已知数据量,或者大概知道这个集合的数据量时,创建list时,建议指定初始化容量 for (int i = 0; i < 15; i++) { BookInfo bookInfo=new BookInfo(); bookInfo.setId(i); bookInfo.setBookName("图书"+i); bookInfo.setAuthor("作者"+i); bookInfo.setCount(new Random().nextInt(200)); bookInfo.setPrice(new BigDecimal(new Random().nextInt(100))); bookInfo.setPublish("出版社"+i); bookInfo.setStatus(i%5==0?2:1); bookInfos.add(bookInfo); } return bookInfos; } }
三、分层思想
MVC也是有分层的思想(过时),最后最好是要把代码分层,现在牛逼的思想
三层架构:
1.表现层
2.业务逻辑层
3.数据层
然后我们要把上面的代码通过架构的思想,把它给变成架构中有层次的代码
Control
package com.example.demo.demos.book.controller; import com.example.demo.demos.book.BookInfo; import com.example.demo.demos.book.service.BookService; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Random; @RestController @RequestMapping("/book") public class BookController { private BookService bookService=new BookService(); @RequestMapping("/getBookList") public List<BookInfo> getBookList() { //1.获取图书的数据 //2.对图书数据进行修改,针对状态码数字(0:有货,1:没货这种)进行改变,把状态码数字转换成中文 //3.返回数据 List<BookInfo>bookInfos=bookService.getBookList(); return bookInfos; } }
Dao
package com.example.demo.demos.book.dao; import com.example.demo.demos.book.BookInfo; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Random; public class BookDao { public List<BookInfo> mockData() { List<BookInfo> bookInfos = new ArrayList<>(15); //对于已知数据量,或者大概知道这个集合的数据量时,创建list时,建议指定初始化容量 for (int i = 0; i < 15; i++) { BookInfo bookInfo=new BookInfo(); bookInfo.setId(i); bookInfo.setBookName("图书"+i); bookInfo.setAuthor("作者"+i); bookInfo.setCount(new Random().nextInt(200)); bookInfo.setPrice(new BigDecimal(new Random().nextInt(100))); bookInfo.setPublish("出版社"+i); bookInfo.setStatus(i%5==0?2:1); bookInfos.add(bookInfo); } return bookInfos; } }
Service
package com.example.demo.demos.book.service; import com.example.demo.demos.book.BookInfo; import com.example.demo.demos.book.dao.BookDao; import java.util.List; public class BookService { private BookDao bookDao=new BookDao(); public List<BookInfo> getBookList() { List<BookInfo> bookInfos = bookDao.mockData(); for (BookInfo bookInfo : bookInfos) { if (bookInfo.getStatus() == 1) { bookInfo.setStatusCN("可借阅"); } else { bookInfo.setStatusCN("不可借阅"); } } return bookInfos; } }
这样代码就符合三层架构的思想了
原文地址:https://blog.csdn.net/weixin_72953218/article/details/134651359
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_42862.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。