一、自定义异常页面
对于 404、405、500等异常状态,服务器会给出默认的异常页面,而这些异常页面一般都是英文的,且非常不友好。我们可以通过简单的方式使用自定义异常页面,并将默认状态码页面进行替换。
具体操作:
在 src/main/resources目录下再定义新的目录public/error,必须是这个目录名称。在 error 目录中定义异常页面。这些异常页面的名称必须为相应的状态码,扩展名为 html。
二、多环境选择
1、什么是多环境选择
以下两种场景下需要进行“多环境选择”。
相同代码运行在不同环境
在开发应用时,通常同一套程序会被运行在多个不同的环境,例如,开发、测试、生产环境等。每个环境的数据库地址、服务器端口号等配置都会不同。若在不同环境下运行时将配置文件修改为不同内容,那么,这种做法不仅非常繁琐,而且很容易发生错误。此时就需要定义出不同的配置信息,在不同的环境中选择不同的配置。
不同环境执行不同实现类
在开发应用时,有时不同的环境,需要运行的接口的实现类也是不同的。例如,若要开发一个具有短信发送功能的应用,开发环境中要执行的send()方法仅需调用短信模拟器即可,而生产环境中要执行的send()则需要调用短信运营商所提供的短信发送接口。此时就需要开发两个相关接口的实现类去实现send()方法,然后在不同的环境中自动选择不同的实现类去执行。
2、多配置文件实现方式
在Spring Boot中多环境配置文件名需要满足application-{profile}.properties 的格式,其中{profile}为对应的环境标识,例如:
- application-dev.properties:开发环境
- application-test.properties:测试环境
- application-prod.properties:生产环境
至于哪个配置文件会被加载,则需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。
例如,spring.profiles.active=test就会加载application-test.properties配置文件内容。在生产环境下application.properties中一般配置通用内容,并设置spring.profiles.active属性的值为dev,即,直接指定要使用的配置文件为开发时的配置文件,而对于其它环境的选择,一般是通过命令行方式去激活。配置文件application-{profile}.properties 中则配置各个环境的不同内容。
在实现类上添加@Profile注解,并在注解参数中指定前述配置文件中的{profile}值,用于指定该实现类所适用的环境。
3、在命令行下选择环境
将工程打为 Jar包后,在命令行运行。若要想切换运行环境,必须要修改主配置文件吗?答案是否定的。只需添加一个命令参数即可动态指定。
将当前工程打为 Jar 包后,在命令行运行时添加如下参数。
在命令行中添加的参数可以是写在配置文件中的任意属性。其原理是命令行设置的属性值的优选级高于配置文件的。
3、单配置文件实现方式
这种实现方式只能使用application.yml文件,使用application.properties 文件好像文件本身就会出错。
运行与访问方式与前面的多配置文件的完全相同。
三、读取自定义属性
1、读取主配置文件中的属性
我们可以在主配置文件中添加自定义属性,然后在@Value注解中通过${ }符号可以读取指定的属性值。
2、读取指定配置文件中的属性
一般情况下,主配置文件中存放系统中定义好的属性设置,而自定义属性一般会写入自定义的配置文件中。也就是说,Java 代码除了可以读取主配置文件中的属性外,还可以读取指定配置文件中的属性,可以通过@PropertySource注解加载指定的配置文件。
- 不能自定义 yml文件。spring boot官网给出说明,@PropertySource 注解不能加载 yml文件。所以其建议自定义配置文件就使用属性文件。
偷个懒,具体操作方法阅读官方文档。
四、Spring Boot 下使用 JSP 页面
在 Spring Boot下直接使用JSP文件,其是无法解析的,需要做专门的配置。
1、添加 jasper 依赖
在 pom 中添加一个 Tomcat内嵌的jsp引擎,jasper依赖。jsp 引擎是用于解析 jsp 文件的,即将 jsp 文件解析为 Servlet 是由 jsp 引擎完成的。embed,嵌入。
2、创建 webapp 目录
3、注册资源目录
在 pom 文件中将 webapp 目录注册为资源目录。
不过,我们一般会添加两个资源目录:
3、指定 web 资源目录
在 spring boot工程中若要创建jsp文件,一般是需要在src/main 下创建 webapp目录,然后在该目录下创建jsp文件。但通过 Alt + Insert发现没有创建jsp文件的选项。此时,需要打开 Project Structrue窗口,将webapp目录指定为web资源目录,然后才可以创建 jsp 文件
做完上述的操作之后,我们就可以使用jsp页面,并跳转访问了。