先给大家晒一下云收藏的几个数据,作为一个 Spring Boot 的开源项目(https://github.com/cloudfavorites/favorites-web)目前在 Github 上面已经有2600多个 Star,如果按照 SpringBoot 标签进行筛选的话也可以排到第五位。
当云收藏1.0开发完成之后,同步将云收藏部署到了服务器上,申请了一个域名www.favorites.ren方便大家使用,到目前为止:网站的注册用户4000多人,共计收藏文章100000多条,在百度上搜索:云收藏,排在第一的就是云收藏的官网。2年多的时间这个数据其实也并不是很耀眼,但是作为一个学习 Spring Boot 的开源软件来讲,已经不错了。
云收藏的部署之路也挺曲折,刚开始的时候部署在我以前公司的服务器上,后来离职的时候在阿里云买了个1核1G的云服务器,因为安装了 Mysql、Redis、还有其它小软件导致服务器非常卡,那段时间访问云收藏的时候需要等待2-3秒才会有响应。
终于有一天自己也不能忍了,花钱把服务器升级到2核2G,访问速度虽有所提升但还是很不理想,那段时间工作很忙也没时间优化。网站的 Bug 也是一片,有时候还会突然中断服务几个小时,流失了一大批用户,甚至有人在 Github 上面留言说:看来微笑哥已经放弃云收藏了,我看了之后只能苦笑。
到了今年 Spring Boot 2.0 发布的时候,我就计划着把云收藏全面升级到2.0,顺便做一些优化让访问速度快一点。但一拖就是2个月,终于在前几个周末抽出了一点时间,将云收藏升级到了 Spring Boot 2.0 同时修复了一批显而易见的 Bug ,使用 Nginx 将静态图片等资源做了代理,当这些工作完全做完的时候,云收藏的访问速度明显得到了提升,大家可以访问www.favorites.ren体验一下。
将云收藏从 Spring Boot 1.0 升级到 2.0 的时候也遇到了一些问题,在修改的过程中记录下来,今天整理一下分享出来,方便后续升级的朋友少踩一些坑。
1、第一个问题:启动类报错
Spring Boot 部署到 Tomcat 中去启动时需要在启动类添加SpringBootServletInitializer,2.0 和 1.0 有区别。
// 1.0
import org.springframework.boot.web.support.SpringBootServletInitializer;
// 2.0
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class UserManageApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(UserManageApplication.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(UserManageApplication.class, args);
}
}
这个问题好解决只需要重新导包就行。
2、日志类报错:Spring Boot 2.0 默认不包含 log4j,建议使用 slf4j 。