Springboot学习笔记(三)



在Springboot中使用freemarker的步骤:
1.在pom中加入依赖:

    org.springframework.boot
    spring-boot-starter-freemarker



2.默认的freemarker的模板文件在classpath:templates路径下,默认扩展名为ftl,可以在配置文件中更改其默认路径
spring:
 freemaker:
  templateLoaderPath: classpath:/ftl
在classpath路径下的ftl文件夹中保存模板文件

一般来说在一个应用中要么是用freemarker模板要么使用jsp,最好不要同时使用

如果不想使用Tomcat容器呢?

在spring-boot-starter-web依赖下排除tomcat容器

 
    org.springframework.boot
    spring-boot-starter-tomcat
 


然后再加入其他的web容器如jetty

    org.springframework.boot
    spring-boot-starter-jetty



如何在Springboot中访问静态资源:

放在webapp下的静态资源是可以直接访问的!

在org.springframework.boot.autoconfigure.web包下的ResourceProperties中可以发现默认的资源路径可以是
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
            "classpath:/META-INF/resources/", "classpath:/resources/",
            "classpath:/static/", "classpath:/public/" };

所以我们可以用这几个路径来存放一些静态资源

也可以通过
spring:
 resources:
  resources:
   staticLocations: xxxx


配置修改默认静态资源路径

如何在Springboot使用servlet API:

在启动类上加入 @ServletComponentScan扫描Servlet组件
在Serlvet,Filter,Listener上分别标注注解
@WebSerlvet @WebFilter @WebListener

或者使用配置类 @SpringBootConfiguration
在此类中得到 ServletRegistrationBean来管理Servlet的beans

如何在Springboot中使用拦截器:

和Spring MVC类似 需要写一个Interceptor类去实现HandlerInterceptor然后需要写一个web配置类去继承WebMvcConfigurerAdapter,重写addInterceptors方法,将刚才创建的interceptor注册进去

@Configuration
public class WebConfiguration extends WebMvcConfigurerAdapter{

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LogHandlerInterceptor());
    }
}


然后拦截器就可以正常使用了!

如何管理错误页面:

首先在静态资源可访问的路径下创建错误页面,如public/404.html,public/500.html

写一个Error注册类实现ErrorPageRegistrar接口来,创建ErrorPage对象,将对应的状态和写好的静态页面绑定,也可以用来捕获异常,非常类似web.xml中的配置。最后将ErrorPage对象注册到ErrorPageRegistry中即可,不要忘了加上 @Component!

@Component
public class CommonErrorPageRegistry implements ErrorPageRegistrar{
    @Override
    public void registerErrorPages(ErrorPageRegistry registry) {
        ErrorPage e404 = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
        ErrorPage e500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
        ErrorPage args = new ErrorPage(IllegalArgumentException.class,"args.html");
        registry.addErrorPages(e404,e500,args);
    }
}


全局异常处理:

在Controller中加入 @ExceptionHandler,如SpringMVC

你可能感兴趣的:(Springboot学习笔记(三))