前面两篇文章我们通过java配置实现了ssm,并且实现了拦截器的添加,这里我们在上面的基础上实现静态资源的访问和json数据的返回。
SpringBoot的静态资源都放在resource下面,我们在resource下面创建一个文件夹static并创建文件hello.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>hello java 集客技术!</h1>
</body>
</html>
然后修改上一篇创建的Spring MVC配置文件,继承类WebMvcConfigurationSupport,并实现他的方法addResourceHandlers,添加对静态资源访问的路径
/**
* 这里默认不扫描org.javaboy,但是扫描Controller
*
*
*/
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.javaboy.interceptot.MyInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.util.List;
/**
* 如何实现访问resource下面的静态资源 这里继承类WebMvcConfigurationSupport,实现方法
* addResourceHandler 访问静态资源
* addInterceptors 拦截器
* viewControllerHandlerMapping 页面控制器
*
*平时转换json我们只需要引入GJSON就可以,框架帮我们处理了很多。
* 不论是生成json还是json的反序列化,都需要httpconvertor.这里引入fastjson演示一下框架做的工作
*
* */
@Configuration
@ComponentScan(basePackages = "org.javaboy",useDefaultFilters = false,includeFilters = {@ComponentScan.Filter(type =
FilterType.ANNOTATION,classes = Controller.class),@ComponentScan.Filter(type=FilterType.ANNOTATION,classes = Configuration.class)})
public class SpringMVCConfig extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
//访问规则 访问路径 **代表任意多层路径 *代表单层路径
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}
//添加拦截器
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(myInterceptor()).addPathPatterns("/**");//所有路径都要经过拦截器
}
//注入自己创建的拦截器的bean,生成自己的对象
@Bean
MyInterceptor myInterceptor(){
return new MyInterceptor();
}
}
让后我们部署运行一下访问html文件,http://localhost:8080/hello.html。