【SpringBoot】
十三、Spring Boot 开发者工具
使用开发者工具包不需要重启。监听内容改变。
1、在pom.xml中添加依赖
<dependency>
2、设置IDEA自动编译
菜单 File --> settings
3、修改Registry
Ctrl+Shift+Alt+/ 点击弹出框中Registry...
勾选
十四、Spring Boot项目打包部署
SpringBoot项目可以是jar类型的maven项目,也可以是一个war类型的maven项目,取决于我们要不要整合jsp使用。但是不管 是哪种项目类型,已经不是我们传统意义上的项目结构了,在本地使用SpringBoot的启动器即可 访问我们开发的项目。如果我们将项目功能开发完成后,需要使用SpringBoot的打包 功能来将项目进行打包。
SpringBoot项目打包在linux服务器中运行:
① jar类型项目会打成jar包:
jar类型项目使用SpringBoot打包插件打包时,会在打成的jar中内置一个tomcat 的jar。所以我们可以使用jdk直接运行该jar项目即可,jar项目中有一个功能, 将功能代码放到其内置的tomcat中运行。我们直接使用浏览器访问即可。
② war类型项目会打成war包:
在打包时需要将内置的tomcat插件排除,配置servlet的依赖。
将war正常的放到tomcat服务器中运行即可。
十五、SpringBoot项目打包插件
必须保证项目中包含SpringBoot打包插件。pom.xml中检查
<build>
十六、 SpringBoot项目打包成jar包
点击IDEA右侧Maven -- > Lifecycle --> install
打包后的内容出现在target根目录
1、运行jar包项目
① 在本地windows系统中运行
把此jar粘贴到任意目录,示例粘贴到D根目录下
启动windows命令行。依次输入:
# d:
# java-jar 文件名.jar
也可以新建一个批处理文件,例如:run.bat,在文件中添加
② 部署到linux
和windows步骤一样。把jar上传到linux后放入到任意目录中,进入到jar所在目录 后执行java -jar 文件.jar 就可以运行。
也可以在jar所在文件夹中新建一个文件,执行运行文件。
# vim startup.sh
文件中输入java -jar 文件.jar
# chmod a+x startup.sh
# ./startup
2、SpringBoot项目打包成war包
① 如果我们当前的maven项目本身就是war类型的项目,直接打包即可。但是如果我们当前的maven项目是jar类型的项目,我们需要将项目修改为war类型,修改项目的pom文件,使用packaging标签设置值为war,并且需要在项目中创建webApp文件夹,并设置为资源文件夹。
② 在SpringBoot的pom文件中将web启动器中的tomcat依赖排除,因为我们打包的war项目要放在自己的tomcat服务器中运行,需要排出SpringBoot项目内置的tomcat。然后再手动的将tomcat插件依赖过来,并设置其scope值为provided。
<!--配置SpringBoot的web启动器-->
③ SpringBoot的启动类继承SpringBootServletInitializer,并重写configure
@SpringBootApplication
④ 使用install命令打包项目,并将war包放到tomcat下的webapps下,启动tomcat即可。
⑤ 如果我们使用的是tomcat7则需要将javax.el-api-3.0.0.jar包放到tomcat下的lib目录中。
十七、异常显示页面
默认情况,Spring Boot项目错误页面如下。
当项目实际上线,如果给用户显示这个页面就不是很友好。当系统出现异常时应该给用户显示更加友好的错误页面。
1、设置具体的状态码页面
在templates/下新建error文件夹,在error中新建:状态.html的页面。例如当出现500时显示的页面为500.html
2、使用x进行模糊匹配
当出现5开头状态码的错误时,显示页面可以命名为5xx.html
当出现50开头状态码的错误时,显示页面可以命名为50x.html
3、统一错误显示页面
在templates下新建error.html。如果项目中不存在具体状态码的页面或没有使用x成功匹配的页面时,显示error.html作为错误显示页面。
十八、异常处理机制
在Spring Boot项目中除了设置错误页面,还可以通过注解实现错误处理。
常见方式如下:
① 在控制器类中添加一个方法,结合@ExceptionHandler。但是只能对当前控制器中方法出现异常进行解决。
② 新建全局异常类,通过@ControllerAdvice结合@ExceptionHandler。当全局异常处理和局部处理同时存在时,局部生效(就近原则)
1、通过@ExceptionHandler注解处理异常
修改Controller
@Controller
2、通过@ControllerAdvice与@ExceptionHandler注解处理异常
创建全局异常处理类
/**
3、通过SimpleMappingExceptionResolver对象处理异常
创建全局异常处理类
/**
4、通过自定义HandlerExceptionResolver对象处理异常
创建全局异常处理类
/**