今日学习记录
今日总结问题一依赖注入问题今天在检查Controller层的时候发现了一个问题就是在使用注解Autowired实现依赖注入的时候发现报错如下。Could not autowire. No beans of WorkSpaceService type found.所以我就开始寻找问题起初我知道大概是因为Spring在去尝试依赖注入的时候没有找到一个已经注册的bean那么是不是因为我的Service注解没写并不是我在ServiceImpl的头部已经加上了Service注解最后答案很低级但是同样值得重视:我没有写ServiceImpl implements Service这就是问题的根因其实并不是没有注册只是它找不到。问题二 Slf4j注解这个注解用了很久大概知道怎么用但是还没有很正式的总结过于是查资料大概在这里总结一下这个注解的作用其实很简单本身是Lombok库的一个注解作用是在代码编译时自动为你去生成一个名为log的Logger对象也就是所谓的日志记录器对象。最常用的就是比如我们要打印日志就无需再去创建日志记录器对象而是可以直接log.info()相信大家都是深有体会这个东西的好用之处。问题三redis启动补充一下redis启动启动redis:./redis-server.exe redis.windows.confredis客户端启动: ./redis-cli.exeredis配置修改位置redis.windows.conf 修改的字段:requirepassredis客户端启动命令可带参数: -h -p -a 分别代表地址、端口号和密码可选图形化工具#Apache POI这是个开源项目可以用Java对Miscrosoft Office进行读写操作。一般情况下POI都是用于操作Excel文件。使用方法:1.导入依赖dependency groupIdorg.apache.poi/groupId artifactIdpoi/artifactId version3.16/version /dependency dependency groupIdorg.apache.poi/groupId artifactIdpoi-ooxml/artifactId version3.16/version /dependency2.将数据写进Excelpackage com.sky.test; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class POITest { /** * 基于POI向Excel文件写入数据 * throws Exception */ public static void write() throws Exception{ //在内存中创建一个Excel文件对象 XSSFWorkbook excel new XSSFWorkbook(); //创建Sheet页 XSSFSheet sheet excel.createSheet(itcast); //在Sheet页中创建行0表示第1行 XSSFRow row1 sheet.createRow(0); //创建单元格并在单元格中设置值单元格编号也是从0开始1表示第2个单元格 row1.createCell(1).setCellValue(姓名); row1.createCell(2).setCellValue(城市); XSSFRow row2 sheet.createRow(1); row2.createCell(1).setCellValue(张三); row2.createCell(2).setCellValue(北京); XSSFRow row3 sheet.createRow(2); row3.createCell(1).setCellValue(李四); row3.createCell(2).setCellValue(上海); FileOutputStream out new FileOutputStream(new File(D:\\itcast.xlsx)); //通过输出流将内存中的Excel文件写入到磁盘上 excel.write(out); //关闭资源 out.flush(); out.close(); excel.close(); } public static void main(String[] args) throws Exception { write(); } }3.获取Excel文件中的数据package com.sky.test; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class POITest { /** * 基于POI读取Excel文件 * throws Exception */ public static void read() throws Exception{ FileInputStream in new FileInputStream(new File(D:\\itcast.xlsx)); //通过输入流读取指定的Excel文件 XSSFWorkbook excel new XSSFWorkbook(in); //获取Excel文件的第1个Sheet页 XSSFSheet sheet excel.getSheetAt(0); //获取Sheet页中的最后一行的行号 int lastRowNum sheet.getLastRowNum(); for (int i 0; i lastRowNum; i) { //获取Sheet页中的行 XSSFRow titleRow sheet.getRow(i); //获取行的第2个单元格 XSSFCell cell1 titleRow.getCell(1); //获取单元格中的文本内容 String cellValue1 cell1.getStringCellValue(); //获取行的第3个单元格 XSSFCell cell2 titleRow.getCell(2); //获取单元格中的文本内容 String cellValue2 cell2.getStringCellValue(); System.out.println(cellValue1 cellValue2); } //关闭资源 in.close(); excel.close(); } public static void main(String[] args) throws Exception { read(); } }上面模块作为IO流的复习或许算是不错的选择。问题四nginx负载均衡什么是负载均衡简单来说如果你的网站只有一台服务器当访问量暴增时这台机器可能会因为资源耗尽CPU、内存打满而宕机。负载均衡Load Balancing的作用就是将大量的用户请求按照一定的规则分发到多台不同的后端服务器上处理从而缓解单台服务器的压力提升系统的整体可用性。nginx负载均衡的核心调度算法是啥(分配规则)1.轮询(Round Robin-默认)原理将请求按照时间顺序分发到不同的服务器。适用场景各个后端服务器硬件配置处理能力一致。2.权重(Weight)原理在轮询的基础上给服务器加上’权重值‘权重值越大的服务器分配到的请求越多适用场景后端服务器性能有差异性能好的就多分配点请求给其稍大的权重值多分配点请求。那么性能差的呢权重值就小一点少分配点请求3.IP哈希(IP Hash)原理将用户ip转化为一个哈希值并且将这个哈希值绑定到某台服务器只要ip不变请求便总会转发到该台被绑定的服务器。适用场景需要保持会话状态比如登录鉴权使用的是session,那么如果请求被转发到另外一台服务器就会显示未登录因为session被保存在后端服务器中。4.最少连接数(Least Connection)原理nginx会记录服务器实时处理的连接数对于新到达的请求优先转发给当前连接数最少的服务器。适用场景连接时间长短不一且服务器处理能力相当的场景。优化因为现实业务场景中公司服务器处理能力往往并不完全一致所以最少连接数常常与权重结合使用。