周报0316~0322

主要完成内容

  1. 完成缅怀秦老先生献花点烛留言板的后端开发,并上线->传送门
  2. 完成电费/跑操预警推送后台人为控制,已上线
  3. 讨论并且敲定新注册方案,已进入测试阶段

踩坑总结

项目war包部署

  1. 打成war包要将springboot自带的tomcat排除掉

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
  2. 使用外部tomcat还需要继承SpringBootServletInitializer类,并且需要重写configure方法

    如果不继承该类会怎么样呢?答:项目无法使用外部容器启动

    如果重复继承会怎么样呢?答:项目可以启动,但是会遇到很多不可预期的问题

    img

nginx配置问题

  • root和alias的区别主要在于替换的部分,root模式中,会把root配置的路径替换匹配后的url中的host。alias则把他指定的路径,替换url中匹配的部分。指令中的斜杠对于root指令没有影响,对于alise则按照替换规则匹配即可。
  • 通常最佳实际是配置一个项目的根root,其他的文件夹则使用alias,毕竟alias更加灵活。
  • 修改配置文件之后要重启,nginx -s reload
location ^~ /static {
    root /vagrant/pro;
}
#计算路径/vagrant/pro + /static/stc.jpg
location ^~ /upload {
    alias /vagrant/pro/upload;
}
#计算路径 /vagrant/pro/upload/ + /up.png
  • /对root指令无太大影响,而alias对斜杠的要求更高

SpringBoot自带的Async注解

  • @Async起作用必须在入口类上配置 @EnableAsync开启异步处理
  • 必须要新建一个类,类中写入task的方法,并加上注释
  • 异步处理最好要自己定义线程池,此时@Async注解可以在括号中指定线程池的名称

下周计划

  1. 开始学习一波SpringCloud,慢慢写个demo
  2. 落下了两周的课 先补回来 T_T
  3. 三道算法题