[关闭]
@zhuanxu 2017-12-11T11:44:57.000000Z 字数 2339 阅读 1794

spring boot web 三两事

spring-boot web


什么是 FreeMarker?

FreeMarker官网,FreeMarker是一模板引擎。

FreeMarker 如何集成到spring-boot中?

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-freemarker</artifactId>
  4. <version>1.5.9.RELEASE</version>
  5. </dependency>

FreeMarker 中使用模板变量

  1. @GetMapping("/logout")
  2. public String logout(Model model){
  3. model.addAttribute("username","zhuanxu");
  4. model.addAttribute("status","logout");
  5. return "logout";
  6. }
  1. <h1>logout ftl</h1>
  2. <b>username: ${username}</b>
  3. <br/>
  4. <b>status: ${status}</b>

spring-boot中替换tomcat为jetty

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <exclusions>
  5. <exclusion>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-tomcat</artifactId>
  8. </exclusion>
  9. </exclusions>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-jetty</artifactId>
  14. <version>1.5.9.RELEASE</version>
  15. </dependency>

ServerProperties类里存放着server的配置。

spring-boot 静态资源怎么访问?

直接在src/main/webapp目录下的资源可以访问,我们可以去org.springframework.boot.autoconfigure.web下看到关于资源的配置文件ResourceProperties,里面定义了资源的位置:

  1. private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
  2. "classpath:/META-INF/resources/", "classpath:/resources/",
  3. "classpath:/static/", "classpath:/public/"
  4. };

spring-boot 中使用Servlet

方法一:(Servlet 3 可以使用这种方式)
1. 编写Servlet,加上注解@WebServlet
2. 需要启用@ServletComponentScan
方法二:(Servlet2.5以下版本可以使用)
1. 编写Servlet
2. 配置bean到容器中
Servlet:ServletRegistrationBean
Filter:FilterRegistrationBean
Listener:ServletListenerRegistrationBean

spring-boot 中使用拦截器

  1. 写一个拦截器,实现HandlerInterceptor接口
  2. 写一个类继承WebMvcConfigurerAdapter,并重写方法addInterceptors,在其中调用registry.addInterceptor注册

HandlerInterceptor中的方法有:
preHandle:controller执行之前执行
postHandle:Controller执行之后,且页面渲染之前调用
afterCompletion:页面渲染之后调用,一般用于资源清理操作

spring-boot 页面异常处理逻辑

默认的异常处理逻辑是在ErrorMvcAutoConfiguration中配置的,我们可以通过@SpringBootApplication(exclude = ErrorMvcAutoConfiguration.class)方式去除。

使用ErrorPageRegistrar方法,写一个类,实现ErrorPageRegistrar接口,然后在里面调用registry.addErrorPages添加ErrorPage。

全局异常处理的方法
1. 写一个类,加上@ControllerAdvice注解
2. 写异常处理方法,加上@ExceptionHandler注解
3. 在每个controller中通过@ExceptionHandler注解的方法,只处理本Controller的异常

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注