设计师网站有哪些销售定制家具,wordpress手机底部导航栏设置,36氪 wordpress 主题,wordpress网易音乐目录
一、Lombok工具包下载
二、前后端互联的图书管理系统
规范 三、分层思想
三层架构#xff1a;
1.表现层
2.业务逻辑层
3.数据层 一、Lombok工具包下载 这个工具包是为了做什么呢#xff1f; 他是为了不去反复的设置setting and getting 而去产生的工具包 ⚠️工具…
目录
一、Lombok工具包下载
二、前后端互联的图书管理系统
规范 三、分层思想
三层架构
1.表现层
2.业务逻辑层
3.数据层 一、Lombok工具包下载 这个工具包是为了做什么呢 他是为了不去反复的设置setting and getting 而去产生的工具包 ⚠️工具包下载推荐不要下载太新的较高的也不要太旧选择一个使用人多的。
使用方法加上注解Data之后。 我们可以使用get属性名字()比如 此时你明明没有写get方法但是就是会有get这个方法这也是这个包吊的地方, 当然假如你想有东西让他不可修改不能访问那么就可以特定的去写Getter,Setter 为什么前端校验之后后端还需要校验 1.这是两个团队的事情 2.后端可能会受到攻击不是非正常的请求 二、前后端互联的图书管理系统 规范 图书管理系统 1.登录 URL: /user/login 参数: userName?password? 响应:true/false 2.图书列表展示 URL:/book/getBookLsit 参数:无 响应:ListBookInfo 登录界面的后段代码显示 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像是一个医保卡你登录之后你的信息服务器就获取了然后会根据您的信息为你进行接下来的服务。 Book对象 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 ListBookInfo getBookList() {//1.获取图书的数据//2.对图书数据进行修改针对状态码数字0有货1没货这种进行改变把状态码数字转换成中文//3.返回数据ListBookInfo bookInfos mockData();for (BookInfo bookInfo : bookInfos) {if (bookInfo.getStatus() 1) {bookInfo.setStatusCN(可借阅);} else {bookInfo.setStatusCN(不可借阅);}}return bookInfos;}private ListBookInfo mockData() {ListBookInfo bookInfos new ArrayList(15);//对于已知数据量或者大概知道这个集合的数据量时创建list时建议指定初始化容量for (int i 0; i 15; i) {BookInfo bookInfonew 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%50?2:1);bookInfos.add(bookInfo);}return bookInfos;}
} 三、分层思想 MVC也是有分层的思想过时最后最好是要把代码分层现在牛逼的思想 三层架构 1.表现层 接受请求返回结果 2.业务逻辑层 业务的逻辑处理主要处理业务相关的逻辑 3.数据层 处理数据包含数据的存储获取增删改查 Control:接受请求参数是否合法结果响应 Service:真正干活部分 Dao:数据部分 然后我们要把上面的代码通过架构的思想把它给变成架构中有层次的代码 Control-Service-Dao 层次的调用关系 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 bookServicenew BookService();RequestMapping(/getBookList)public ListBookInfo getBookList() {//1.获取图书的数据//2.对图书数据进行修改针对状态码数字0有货1没货这种进行改变把状态码数字转换成中文//3.返回数据ListBookInfobookInfosbookService.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 ListBookInfo mockData() {ListBookInfo bookInfos new ArrayList(15);//对于已知数据量或者大概知道这个集合的数据量时创建list时建议指定初始化容量for (int i 0; i 15; i) {BookInfo bookInfonew 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%50?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 bookDaonew BookDao();public ListBookInfo getBookList() {ListBookInfo bookInfos bookDao.mockData();for (BookInfo bookInfo : bookInfos) {if (bookInfo.getStatus() 1) {bookInfo.setStatusCN(可借阅);} else {bookInfo.setStatusCN(不可借阅);}}return bookInfos;}
} 这样代码就符合三层架构的思想了