概述

  1. 采用springboot 1.5.3 重构现有项目
  2. 配置文件精简,提高开发效率
  3. maven管理依赖包
  4. 注解代替xml

如何启动

开发时idea
BootlabbookmanagerApplication文件右侧绿色三角形,启动即可

如何打包发布

打包

本地需要安装maven,添加环境变量
项目根目录下

1
mvn clean && mvn package -Dmaven.test.skip

在target目录下生成
bootlabbookmanager-0.0.1-SNAPSHOT.war

前台运行

前台启动(命令行启动,退出命令行,进程跟着退出)

1
java -jar bootlabbookmanager-0.0.1-SNAPSHOT.war

发布

后台运行(命令行关闭后进程仍在,发布到服务器上用)

1
nohup java -jar  bootlabbookmanager-0.0.1-SNAPSHOT.war &

重新发布

查找旧进程并kill

1
2
3
4
5
6
7
8
9
➜  target git:(master) ✗ ps -ef|grep bootlabbookmanager-0.0.1-SNAPSHOT.war
501 3524 2794 0 12:25上午 ttys000 0:32.90 /usr/bin/java -jar bootlabbookmanager-0.0.1-SNAPSHOT.war
501 3536 2794 0 12:25上午 ttys000 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn bootlabbookmanager-0.0.1-SNAPSHOT.war
➜ target git:(master) ✗ kill 3524
➜ target git:(master) ✗
[1] + 3524 exit 143 nohup java -jar bootlabbookmanager-0.0.1-SNAPSHOT.war
➜ target git:(master) ✗ ps -ef|grep bootlabbookmanager-0.0.1-SNAPSHOT.war
501 3580 2794 0 12:27上午 ttys000 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn bootlabbookmanager-0.0.1-SNAPSHOT.war
➜ target git:(master) ✗

然后替换war包 后台启动新war包

改造概述

推荐两本书,电子版/实体
springboot实战
spring实战第四版

点到即止,零碎知识点可以以下方式查阅资料
推荐

  1. 简书 很多很好的spring文章和系列博客
  2. stackoverflow
  3. springboot的官方github 本身就有很多示例了

添加jsp支持

  1. Application继承SpringBootServletInitializer
  2. pom文件添加jsp支持,servlet,标签,tomcat等等
  3. view解析规则配置

登录拦截器

WebMvcConfigurerAdapter–》addInterceptors

资源映射

WebMvcConfigurerAdapter–》addResourceHandlers

UserNotLoginException 处理

GlobalExceptionHandler–》defaultErrorHandler

全局错误页面处理

BootlabbookmanagerApplication–》
EmbeddedServletContainerCustomizer

Mybatis

阿里开源druid数据库连接池
LabBookDBConfig,时间问题,未启用数据库连接加密,但加入了监控页面
访问http://localhost:8080/druid
yml文件中找到用户名,密码 登录
可查看sql监控,访问,servlet监控

注意:ApplyPurchaseMapper之类文件要添加注解

日志配置

log4j.xml

其他

  1. Service 相关类都要@Service注解
  2. @Autowired一般直接标注在变量上,不用set
  3. application.yml可以定义常量
  4. 有兴趣可以用jenkins配置自动发布