1. 添加依赖

在 pom.xml 导入如下依赖

org.springframework.boot

spring-boot-starter-web

  1. 创建启动类

创建一个类,在其上加上 @SpringBootApplication 注解标识为启动类

@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class,args);
}
}
  1. 定义 Controller

创建Controller 包,Controller 要放在启动类所在包

springboot 报表工具_springboot 报表工具

@RestController // 相当于 @Controller + @ResponseBody
public class HelloController {
@RequestMapping(“/hello”)
public String hello(){
return “Hello SpringBoot”;
}
}
  1. 启动测试

直接运行启动类的 main 方法即可,然后访问 localhost:80/hello

springboot 报表工具_后端_02

1.4、打包运行


我们可以把 springboot 的项目打成 jar 包直接去运行。

  1. 添加 maven 插件 spring-boot-maven-plugin

org.springframework.boot

spring-boot-maven-plugin

  1. maven 打包

springboot 报表工具_错误页面_03

  1. 在 cmd 命令行中启动 jar 包

springboot 报表工具_java_04

  1. 在浏览器访问 localhost:80/hello 即可

1.5、修改banner


也就是更改启动时显示的字符拼成的字母,也就是 banner 图案

  1. 百度SpringBoot banner 在线生成工具:https://www.bootschool.net/ascii ,这个网站生成
  2. 到项目下的 resources 目录下新建一个 banner.txt 即可
  3. 将生成的拷贝到 banner.txt 中即可

springboot 报表工具_java_05

2、SpringBoot国际化

=================================================================================

在 Web 开发中,国际化支持通常是做国际化网站都需要考虑的一个问题,应用程序会涉及到页面的多语言化支持,例如页面可以切换中文简体、英文、日文等语言。Spring Boot 为国际化提供了强有力的支持,同时在开发 Web 应用程序的时候,请求处理过程中发生错误也是非常常见的情况、往往是需要通过一个统一的异常处理来保证客户端能够收到友好的提示。

2.1、SpringBoot国际化支持


国际化是一个使应用程序适应不同语言和区域而无需对源代码进行工程更改的过程。用它来说,国际化是对本地化的准备。国际化实际上就是在利用浏览器语言,或者页面中的中英文切换,将页面的文字在其他语言和中文进行切换。

SpringBoot实现国际化的步骤如下:

  1. 编写多语言国际化文件

在项目的 resources 目录创建名称为 i18n的文件夹,并在该文件夹中根据需要编写对应的多语言国际化文件 login.properties、login_zh_CN.properties 和 login_en_US.properties 文

件,代码如下所示:
• login.properties
login.password=密码
login.remeber=记住我
login.btn=登录
login.tip=请登录
login.username=用户名
• login_zh_CN.properties
login.password=密码
login.remeber=记住我
login.btn=登录
login.tip=请登录
login.username=用户名
• login_en_US.properties
login.password=Password
login.remeber=Remember Me
login.btn=sign in
login.tip=Please sign in
login.username=UserName

springboot 报表工具_springboot 报表工具_06

如图方式,我们创建3个文件,分别是无语言配置时候生效的 login.properties ;中文生效的 login_zh_CN.properties ,英文生效的 login_en_US.properties

以下划线的组合:文件名 _ 区域 _语言.properties,当我们这样命名生成文件后,IDEA也会帮我们识别这是个国际化配置包,自动转换成如下的模式:

springboot 报表工具_spring boot_07

当变成如上图所描述的模式时,我们再需要添加配置文件,直接选中包右键 new 即可,如下图所示:

springboot 报表工具_java_08

springboot 报表工具_后端_09

我们需要在这些配置文件里做些改动,先点击 login_zh_CN的配置文件,然后点击下边如图所示的 Resource Bundle 的按钮,切换编辑模式

springboot 报表工具_java_10

按照如图的方法,点击加号,添加一个 key,命名为 login.tip (在页面中使用)

springboot 报表工具_springboot 报表工具_11

接下来按照我们页面需要转换的量,来做配置,如下图

springboot 报表工具_错误页面_12

  1. 指定国际化参数设置

application.properties 配置文件中指定国际化参数设置

#指定国际化基类名

spring.message.basename=i18n.login

上述代码中,根据国际化配置文件位置和名称,在项目全局配置文件中使用 spring.message.basename=i18n.login 设置了自定义国际化文件的基础名。其中,i18n表示国际化文件相对项目类路径 resources 的位置,login 表示多语言文件的前缀名。如果开发者完全按照 SpringBoot 默认识别机制,在项目类路径 resources 下编写 message.properties 等国际化文件,可以省略国际化文件基础名的设置。

  1. 使用国际化属性

在 html页面中使用 #{} 引用国际化属性


Signin Template for Bootstrap

Please Sign in

  1. 中文乱码解决方案

若在切换语言的过程中出现中文乱码,在 settings 设置 File Encoding 编码格式

springboot 报表工具_java_13

  1. 在项目中定义区域解析器,在项目中创建名为 com.xxx.config 的包,并在该包下创建一个用于定制国际化功能区域信息解析器的自定义配置类 MyLocaResolver
@Configuration
public class MyLocalResolver implements LocaleResolver{
/**
• 自定义区域解析方式
• @param request
• @return
*/
@Override
public Locale resolveLocale(HttpServletRequest request){
// 获取页面手动切换传递的语言参数l
String l = request.getParameter(“l”);
// 获取请求头自动传递的语言参数Accept-Language
String header = request.getHeader(“Accept-Language”);
Local locale = null;
// 如果手动切换参数不为空,就根据手动参数进行语言切换,否则默认根据请求头信息切换
if(!StringUtils.isEmpty){
// 拆分语言代码_国家代码
String[] split = l.split(“_”);
// 创建Locale对象
locale = new Locale(split[0],split[1]);
}else{
// 拆分默认语言代码_国家代码
String[] split = header.split(“,”);
locale = new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
}
// 将自定义的MyLocalResolver类重新注册为一个类型LocaleResolver的Bean组件
@Bean
public LocaleResolver localeResolver(){
return new MyLocalResolver();
}
}

上述代码中,MyLocalResovler 配置类实现类LocaleResolver接口,并重写了 LocaleResolver 接口的 resolveLocale() 方法解析自定义语言。使用@Bean 注解将当前配置类注册成Spring容器中的一个Bean组件。这样就可以覆盖默认的LocaleResolver组件。在重写 resolveLocale() 方法中,可以根据不同的需求切换语言信息从而获取请求的参数,只有请求参数不为空时,才可以进行语言切换。

最后,只需要修改login.html页面的"中文"、"English"超链接提交路径即可

中文

English

3、SpringBoot全局异常处理

====================================================================================

SpringBoot 默认的处理异常的机制,SpringBoot 默认的提供了一套处理异常的机制。一旦程序中出现了异常,SpringBoot 会向 /error 的 url 发送请求。在 SpringBoot 中提供了一个叫做 BasicExceptionController 来处理 /error 请求,然后跳转到默认显示异常的页面来显示异常信息。

在SpringBoot框架中,局部处理异常的方式与 SpringMVC 方式一致。实现全局异常的常用的方法有自定义错误页面和@ControllerAdvice 注解

3.1、自定义错误页面处理异常


在SpringBoot框架中,在浏览器输入不存在的请求地址会出现如下图的错误:

springboot 报表工具_错误页面_14

上述的错误在SpringBoot开发中十分常见,虽然 SpringBoot 为我们提供了默认的错误页面映射,但是实际开发中,上图的错误页面对用户来说并不友好,所以我们需要自己来实现异常提示。

如果我们需要将所有的异常统一跳转到自定义的错误页面,需要在 src/main/resources/templates 目录下创建 error.html 页面,并且页面名称必须是 error。


错误页面

错误页面!

3.2、@ControllerAdvice+@ExceptionHandler


在 SpringBoot 框架中,可以使用 @ControllerAdvice 注解和@ExceptionHandler 注解实现全局异常统一处理。@ControllerAdvice 注解用于标识某个类是控制器的切面类;@ExceptionHandler 注解用于标识在异常处理的方法上。如果要实现 Ajax 异常处理,可以使用 @RestControllerAdvice 注解,该注解用于标识某个类是控制器的切面类,支持 restful 风格及ajax返回json。

  1. 定义GlobalException异常处理类

在项目中创建名为 com.manong.exception 的包,并在该包下定义 GlobalException 异常处理类,代码如下:

@ControllerAdvice
public class GlobalException{
@ExceptionHandler(value={Exception.class})
public Object exceptionHandler(HttpServletRequest request,Exception e){
ModelAndView modelandView = new ModelAndView();
modelandView.addObject(“exception”,e.getMessage()); // 设置异常信息
modelandView.addObject(“url”,request.getRequestURL()); //设置异常路径
modelandView.setViewName(“error”); //设置页面视图
return modelAndView;
}
}
  1. 修改 error.html 页面

添加异常信息和异常路径显示:


错误页面

错误页面!

错误信息:

错误信息:


总结

互联网大厂比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考。无论是哪家公司,都很重视高并发高可用技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。