3.29

如你所见的搬迁决定

有感于去年老师所谈的迭代同今年3月时另一位老师的推荐,把原先写在QQ空间的那些杂七杂八的工作搬到语雀来。
去年学工科数学分析上册时,看到讨论区的CAN同学将习题答案搬到语雀上,以解决MOOC讨论区的裂图问题,今年我也这么干(逃
而且语雀网页端的使用体验是比印象笔记好些,好在哪我也不知道,大概是广告少了(
主要的是语雀插入第三方服务比较方便,如Bilibili,墨刀,在文件中可预览网页,原先的印象笔记我是不知道咋实现这个,也可能是因为我没开高级会员🤣
把MySQL和JDBC的内容解决,开始处理SpringBoot的任务(Java的基本语法是上学期就学了,但。。。。MOOC和教材里没教反射和注解,还加了大篇幅的过时技术Applet,实在是为难我)
心有猛虎,细嗅蔷薇。
ScreenClip.png

3.30

看SpringBoot的内容太困了,单词本的单词越积越多。
看web开发一截的时候我没有亲自上手,只是看着视频里一直在出错,说是SpringBoot的bug,配置静态资源路径和自定义 Favicon有冲突

  1. spring:
  2. # mvc:
  3. # static-path-pattern: /res/** 这个会导致 Favicon 功能失效

“语雀好好用”同学提到“这个还要多试几下效果才能显示出来,不知道为什么,可能是缓存的原因”,“苏白”同学回应“你存入一个静态资源,可以先看target编译目录中有没有,没有的话使用Maven 进行clean操作,再启动服务器编译,这样就有了,访问不到应该是没有编译到静态资源”
老师是在Chrome直接网页下F12,禁用缓存,不过Edge没有这个键emmm
“灰孩子的天空”提到“2.4.2 版本文档没有了该图标解释”,我常常想着自己英语水平好的话就去翻官方文档了
大学第一次迟到,竟然是因为喉咙不舒服555请了事假只扣了2.5分,扣分好在减半了Ծ‸Ծ

3.31

因为Spring的底层原理是真的难啃,影响到我的计划,直接去看现成的项目可能好些。找了个单一架构的众筹网站实现,分布式架构没敢碰,该加速了。
不对劲,还是要直接分布式架构,SSM学的太懵了,得搭好上层建筑先。
学长好像默认我们都会用Matlab,可惜我没把玩过,只能说我可以学(害
学SpringBoot我也不搞什么高深的东西,当记了100来个专有的英语单词。
昨天SpringBoot那个可不是bug,底层写死了,惊喜吧.jpg
然后发现把index.html拉过去,欢迎页还是没有,IDEA就这就这就这(Eclipse太拉了

  1. WelcomePageHandlerMapping(TemplateAvailabilityProviders templateAvailabilityProviders,
  2. ApplicationContext applicationContext, Optional<Resource> welcomePage, String staticPathPattern) {
  3. if (welcomePage.isPresent() && "/**".equals(staticPathPattern)) {
  4. //要用欢迎页功能,必须是/**
  5. logger.info("Adding welcome page: " + welcomePage.get());
  6. setRootViewName("forward:index.html");
  7. }
  8. else if (welcomeTemplateExists(templateAvailabilityProviders, applicationContext)) {
  9. // 调用Controller /index
  10. logger.info("Adding welcome page template: index");
  11. setRootViewName("index");
  12. }
  13. }

翻翻以前在酷安找的摘抄趴,听学长讲正好梦里梦到(?)
我曾经的思念伴着记忆,飘向了那个有你的地方。
我所爱过的人,渐渐的都像电影镜头慢慢的拉远,最后模糊在了视线中。
偶尔我脑海会浮现一些熟悉的陌生画面,在我日常生活某一个不经意的举动中,或者,是在见到某场景的时候触动,就好似那些已经发生过了一样。
时间也在这一瞬间定格,记忆与现实开始一帧一帧同步播放……
我却脑中反复回忆仍然没有找到历史的头绪,也不知是谁偷梁换柱将空白安在了那里。
时常会有这样的情况,我看见的明明才发生,自己却好像经历过。
恰到好处的东西,有时候也恰巧引出脑子里的一些人或者是事,分明不认识,也没有做过却熟悉的久久难忘。
也不知道这些是前世遇见过的,还是另一个位面的自己所经历过的,结果不小心记忆传错了频道……
但我又会转念去仔细想想,自己是不是真的把什么忘了?
完结一下这个月解决的问题。
当月总结
1.spring-boot-maven-plugin报红的同学,原因在这里https://blog.csdn.net/weixin_43895254/article/details/114594201
2.解决java.sql.SQLException: The server time zone value ‘XXXXXX’ is unrecognized or represents more than one time zone.
最近在使用Mybatis和MySQL开发的过程中遇到个奇怪的问题,经过排查发现是jdbc driver的问题,在此记录一下
使用的数据库是MySQL,驱动是6.0.3,这是由于数据库和系统时区差异所造成的,在jdbc连接的url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8,否则会被解析为空。再一个解决办法就是使用低版本的MySQL jdbc驱动,5.1.28不会存在时区的问题。
3.MySQL8查询tx_isolation为空的问题解决
transaction_isolation在MySQL 5.7.20中添加了作为别名 tx_isolation,现已弃用,并在MySQL 8.0中删除。应调整应用程序transaction_isolation以优先使用 tx_isolation。
换成transaction_isolation,后就能正常查询mysql8当前的默认事物的隔离级别了
4.dbcp2 没有setMaxActive和setMaxWait方法的原因
我们在使用dbcp2创建数据源的时候会发现缺少了两个之前常用的属性方法,他们分别是setMaxActive和setMaxWait这两个方法,
在dbcp2中,setMaxActive和setMaxWait这两个方法已经改为其他名称,具体如下:
setMaxWait -> setMaxWaitMillis
void org.apache.commons.dbcp2.BasicDataSource.setMaxWaitMillis(long maxWaitMillis)
setMaxActive -> setMaxTotal
void org.apache.commons.dbcp2.BasicDataSource.setMaxTotal(int maxTotal)
5.学习MySQL中,由于教程过老,手动导Jar包到Lib目录时可能需要额外导入教程没提的Apache Commons Logging(如commons-logging-1.2.jar)与视频没提但官方英文文档提过的mchange-commons-java-0.2.19.jar
6.根据JAVA9的API 我们可以看见反射中的newInstance()方法不推荐使用了,用

  1. clazz.getDeclaredConstructor().newInstance()

代替
例如

  1. package reflect;
  2. import java.lang.reflect.InvocationTargetException;
  3. /**
  4. * 获取class对象的几种方法
  5. * 对象.get.class
  6. * 类 class
  7. * Class.forName(完整类名)
  8. *
  9. *
  10. */
  11. public class Demo {
  12. public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
  13. String string="abc";
  14. Class<?> class1=string.getClass();
  15. class1=String.class;
  16. try {
  17. class1=Class.forName("java.lang.String");
  18. } catch (ClassNotFoundException e) {
  19. // TODO Auto-generated catch block
  20. e.printStackTrace();
  21. }
  22. System.out.println((String)class1.getDeclaredConstructor().newInstance());
  23. }
  24. }

7.mysql5及之前的版本使用的是旧版驱动”com.mysql.jdbc.Driver”,
mysql6以及之后的版本需要更新到新版驱动,对应的Driver是”com.mysql.cj.jdbc.Driver”