最全这一次,我连 web,腾讯T3亲自教你

最后

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

启动项目,访问接口,结果如下:

640?wx_fmt=png

6 其他配置


6.1 静态资源过滤

静态资源过滤在 SpringMVC 的 XML 中的配置如下:

<mvc:resources mapping=“/**” location=“/”/>

在 Java 配置的 SSM 环境中,如果要配置静态资源过滤,需要让 SpringMVC 的配置继承 WebMvcConfigurationSupport ,进而重写 WebMvcConfigurationSupport 中的方法,如下:

@Configuration

@ComponentScan(basePackages = “org.javaboy”)

public class SpringMVCConfig extends WebMvcConfigurationSupport {

@Override

protected void addResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler(“/js/**”).addResourceLocations(“classpath:/”);

}

}

重写 addResourceHandlers 方法,在这个方法中配置静态资源过滤,这里我将静态资源放在 resources 目录下,所以资源位置是 classpath:/ ,当然,资源也可以放在 webapp 目录下,此时只需要修改配置中的资源位置即可。如果采用 Java 来配置 SSM 环境,一般来说,可以不必使用 webapp 目录,除非要使用 JSP 做页面模板,否则可以忽略 webapp 目录。

6.2 视图解析器

在 XML 文件中,通过如下方式配置视图解析器:

如果通过 Java 类,一样也可以实现类似功能。

首先为我们的项目添加 webapp 目录,webapp 目录中添加一个 jsp 目录,jsp 目录中添加 jsp 文件:

640?wx_fmt=png

然后引入 JSP 的依赖:

javax.servlet.jsp

javax.servlet.jsp-api

2.3.1

然后,在配置类中,继续重写方法:

@Configuration

@ComponentScan(basePackages = “org.javaboy”)

public class SpringMVCConfig extends WebMvcConfigurationSupport {

@Override

protected void configureViewResolvers(ViewResolverRegistry registry) {

registry.jsp(“/jsp/”, “.jsp”);

}

}

接下来,在 Controller 中添加控制器即可访问 JSP 页面:

@Controller

public class HelloController2 {

@GetMapping(“/hello2”)

public String hello() {

return “hello”;

}

}

6.3 路径映射

有的时候,我们的控制器的作用仅仅只是一个跳转,就像上面小节中的控制器,里边没有任何业务逻辑,像这种情况,可以不用定义方法,可以直接通过路径映射来实现页面访问。如果在 XML 中配置路径映射,如下:

<mvc:view-controller path=“/hello” view-name=“hello” status-code=“200”/>

这行配置,表示如果用户访问 /hello 这个路径,则直接将名为 hello 的视图返回给用户,并且响应码为 200,这个配置就可以替代 Controller 中的方法。

相同的需求,如果在 Java 代码中,写法如下:

@Configuration

@ComponentScan(basePackages = “org.javaboy”)

public class SpringMVCConfig extends WebMvcConfigurationSupport {

@Override

protected void addViewControllers(ViewControllerRegistry registry) {

registry.addViewController(“/hello3”).setViewName(“hello”);

}

}

此时,用户访问 /hello3 接口,就能看到名为 hello 的视图文件。

6.4 JSON 配置

SpringMVC 可以接收JSON 参数,也可以返回 JSON 参数,这一切依赖于 HttpMessageConverter。

HttpMessageConverter 可以将一个 JSON 字符串转为 对象,也可以将一个对象转为 JSON 字符串,实际上它的底层还是依赖于具体的 JSON 库。

所有的 JSON 库要在 SpringMVC 中自动返回或者接收 JSON,都必须提供和自己相关的 HttpMessageConverter 。

SpringMVC 中,默认提供了 Jackson 和 gson 的 HttpMessageConverter ,分别是:MappingJackson2HttpMessageConverter 和 GsonHttpMessageConverter 。

正因为如此,我们在 SpringMVC 中,如果要使用 JSON ,对于 jackson 和 gson 我们只需要添加依赖,加完依赖就可以直接使用了。具体的配置是在 AllEncompassingFormHttpMessageConverter 类中完成的。

如果开发者使用了 fastjson,那么默认情况下,SpringMVC 并没有提供 fastjson 的 HttpMessageConverter ,这个需要我们自己提供,如果是在 XML 配置中,fastjson 除了加依赖,还要显式配置 HttpMessageConverter,如下:

mvc:annotation-driven

mvc:message-converters

</mvc:message-converters>

</mvc:annotation-driven>

在 Java 配置的 SSM 中,我们一样也可以添加这样的配置:

@Configuration

@ComponentScan(basePackages = “org.javaboy”)

public class SpringMVCConfig extends WebMvcConfigurationSupport {

@Override

protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();

converter.setDefaultCharset(Charset.forName(“UTF-8”));

FastJsonConfig fastJsonConfig = new FastJsonConfig();

fastJsonConfig.setCharset(Charset.forName(“UTF-8”));

converter.setFastJsonConfig(fastJsonConfig);

converters.add(converter);

}

}

然后,就可以在接口中直接返回 JSON 了,此时的 JSON 数据将通过 fastjson 生成。

总结

好了,本文通过一个简单的例子向读者展示了使用 Java 来配置 Spring+SpringMVC 环境,事实上,只要这两个配置 OK ,再加入 MyBatis 就是非常容易的事了,本文相关的案例松哥已经上传到 GitHub 上了:https://github.com/lenve/javaboy-code-samples。

关于本文,有问题欢迎留言讨论。

640?wx_fmt=gif

没有一条路是容易的,特别是转行计算机这条路

Spring Boot + Vue 前后端分离开发,权限管理的一点思路

Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置

徒手撸一个 Spring Boot 中的 Starter ,解密自动化配置黑魔法!

整理了八个开源的 Spring Boot 学习资源

Java 开发中到底该不该用 Lombok?

提高性能,MySQL  读写分离环境搭建(二)

提高性能,MySQL  读写分离环境搭建(一)

一个转行程序员的买房经历

最后

小编精心为大家准备了一手资料

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

BATJ面试要点及Java架构师进阶资料

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

BAT面试的20道高频数据库问题解析
2. Java面试宝典
3. Netty实战
4. 算法

[外链图片转存中…(img-XiG3Xohy-1715614941067)]

BATJ面试要点及Java架构师进阶资料

[外链图片转存中…(img-vtMF4IF1-1715614941067)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值