一般来说,五大注解通常情况下是可以混用的,我们之前的BookController和UserController的注解不变 ,也不能改变,因为@Controller除了交给Spring管理外,还具备一定的路由功能,如果修改了,就可能导致URL没办法访问到了。
本次修改的BookService类和BookDao类,因为BookService类是处理业务逻辑的,所以加@Service注解好一点,这个也表示是业务逻辑层的代码,程序员可以直接看出来;而BookDao类是数据层,也叫持久化层,因为还没学MyBatis,所以使用的是mock的方式创建数据,因为是和数据相关的,所以加上@Repository注解好一点,这个注解也代表是数据相关的代码。
1. BookService类
加上注解@Service
package com.example.zxslzw2014_8_11.service;
import com.example.zxslzw2014_8_11.dao.BookDao;
import com.example.zxslzw2014_8_11.model.BookInfo;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BookService {
public List<BookInfo> getBookList() {
BookDao bookDao = new BookDao();
List<BookInfo> bookInfos = bookDao.mockData();
for(BookInfo bookInfo : bookInfos) {
if(bookInfo.getStatus() == 2) {
bookInfo.setStatusCN("不可借阅");
} else {
bookInfo.setStatusCN("可借阅");
}
}
return bookInfos;
}
}
2. BookDao类
加上注解@Repository
package com.example.zxslzw2014_8_11.dao;
import com.example.zxslzw2014_8_11.model.BookInfo;
import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Repository
public class BookDao {
public List<BookInfo> mockData() {
//理论上应该从数据库中获取数据,当前采用mock方式
List<BookInfo> bookInfos = new ArrayList<>();
for (int i = 1; i <= 15; i++) {
BookInfo bookInfo = new BookInfo();
bookInfo.setId(i);
bookInfo.setBookName("图书" + i);
bookInfo.setAuthor("作者" + i);
bookInfo.setNum(i * 2 + 1);
bookInfo.setPrice(new BigDecimal(i * 3));
bookInfo.setPublishName("出版社" + i);
if(i % 5 == 0) {
bookInfo.setStatus(2);
// bookInfo.setStatusCN("不可借阅");
} else {
bookInfo.setStatus(1);
// bookInfo.setStatusCN("可借阅");
}
bookInfos.add(bookInfo);
}
return bookInfos;
}
}
其余前端代码和后端的代码不用添加注释或者修改其他部分;
3. 测试结果
访问http://127.0.0.1:8080/login.html,登录页面如下:
输入正确的账号和密码:
结果如下:
ps:本次的内容就到这里了,如果对你有所帮助的话,就请一键三连哦!!!
本文的封面来自:bilibili苏杉杉的pv,侵权删 url:https://www.bilibili.com/video/BV1vo4y167eh/?spm_id_from=333.999.0.0&vd_source=866da5be2ef0ddd213b053523da53138
————————————————
电子签名:上嘉路