存放位置 springboot_SpringBoot的Web开发

使用SprinBoot的大致操作步骤:1、创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块自动配置好2、手动在配置文件中配置部分配置项目就可以运行起来了3、专注编写业务代码,不需要考虑以前那样一大堆的配置了。 SpringBoot帮我们配置的文件: ★向容器中自动配置的组件:xxxxAutoConfiguration ★自动配置类,封装配置文件的内容:xxxxProperties   作为Web开发,需要解决的以下问题: ★导入静态资源:如html,css等导入 ★编写首页代码 ★jsp,模板引擎Thymeleaf ★装配扩展SpringMVC ★增删改查 ★拦截器 ★国际化! 下面开始Web建立: 1. 首先新建一个springboot-web项目:(1)打开IDEA直接创建新项目,左侧类别选择spring initalizr类。(2)可以看到默认就是通过Spring官网的快速构建工具那里去实现。(3)填写所要建立项目的相关信息。(4)在确认构建项目之后,选择web类别中的Spring Web选项(5)点击确定创建,等待新的项目构建完成。

c4a4efe8092cff0976c3e1d274077e4b.png

写请求是很简单的,那我们要引入我们前端资源,我们项目中有许多的静态资源,比如css,js等文件,这个SpringBoot该怎么处理呢?如果我们是一个web应用,我们的main下会有一个webapp,我们以前都是将所有的页面导在这里面的。但是我们现在的pom呢,打包方式是为jar的方式,那么这种方式 SpringBoot能不能来给我们写页面呢?这是可以的,但是SpringBoot对于静态资源放置的位置,是有规定的! 下面先谈到静态资源映射的相关规则:SpringBoot中,SpringMVC的web配置都在WebMvcAutoConfiguration这个配置类里面,搜索查找WebMvcAutoConfiguration这个配置类;我们可以看到在配置类WebMvcAutoConfigurationAdapter中有很多配置方法;(1)阅读相关源码,其中有一个方法:addResourceHandlers 添加资源处理,对应代码如下图所示: 8a2e87cc3e0a07a57678587e0e359de1.png(2)如何在我们的application.properties中自定义?在该类中前方找WebMvcProperties,点击进入该方法体内部。

dcefeabbe7b059353cc18dae76971d2a.png

(3)进入WebMvcProperties配置类内部后,找到关于静态资源的配置,如下图所示:

d0202648a3cd62b50d529c4fdf718d66.png

(4)这样,我们知道了该静态资源配置的名称,然后在我们的application.properties配置文件中,进行配置即可,如下图所示:

f3612d8183c60cc3bc683e1647e07184.png

以上,为我们自定义配置路径。 下面使用非自定义路径来研究:

(1)源代码截图如下,跨过上面的自定义路径类型,看到第一种找到静态资源的方式

2fe1e1de84c1adbb048448b0416b1047.png

阅读以上源码,可以明显看出来,比如在代码中的所有的/webjars/** ,都需要去 classpath:/METAINF/resources/webjars/找对应的资源; 在此,首先解决什么是webjars?Webjars其本质就是以jar包的方式引入我们的静态资源。我们以前要导入一个静态资源文件,直接导入即可。而使用SpringBoot需要使用Webjars,我们可以去搜索一下:网站: https://www.webjars.org。要使用jQuery,我们只要要引入jQuery对应版本的pom依赖即可!即在pom.xml配置文件中导入jQuery的依赖!

44c2b2edc24bf49dd613cbfebfc59b02.png

导入后,在我们的外部包中查看,已经导入,还是js文件,只不过是通过jar包来进行了封装而已。

003ce393567be1fee9aff3a33f501a89.png

(2)再次理解上面的源码:源码认为,只要是静态资源,SpringBoot就会寻找对应的路径资源。

86f38ce25226e9e698367420944356bf.png

(3)我们访问http://localhost:8080/webjars/jquery/3.4.1/jquery.js即可访问对应页面:

6e31d05b9e5ba607d82a7a699ed4feb0.png

【重!】以上为源码中的第一种方式来进行操作,下面来分析源码中所给出的第二种操作方式:(1)如果我们在项目中使用自己的静态资源该如何导入呢?我们去找staticPathPattern发现第二种映射规则 :/** , 访问当前的项目任意资源,它会去找resourceProperties 这个类,我们可以点进去看一下分析:

ec80315075c99a06dd788d31338b2a41.png

(2)ResourceProperties可以设置和我们静态资源有关的参数;这里面指向了它会去寻找资源的 文件夹,即上面数组的内容。所以得出结论,以下四个目录存放的静态资源可以被我们识别: 1."classpath:/META-INF/resources/", 2."classpath:/resources/", 3."classpath:/static/", 4."classpath:/public/"。 (3)我们可以在resources根目录下新建对应的文件夹,都可以存放我们的静态文件;比如我们访问http://localhost:8080/1.js , 他就会去这些文件夹中寻找对应的静态资源文件;下图中的目录分别对应上面的1~4个路径。代表可以在这些路径下放置相关的前端静态文件。

c7c299e6f8b5f6b8bb6269b58cc5c4a1.png

(4)新建包进行测试:以上四个路径都会被系统所识别到,我们随意来新建一个进行测试,比如在public目录下新建一个1.js文件,在该1.js文件中编写简易代码进行测试:

50f35c928749efddca5bec727513e879.png

启动主程序代码,进行运行测试,打开网页进行调试,如下图所示: 2cf0d20ff27f3d4da494fcb3d975ba87.png 测试调试成功! 当然,既然上面4个路径系统都可以识别到,那肯定会涉及到优先级的问题,就是系统会如何按序来访问,经过测试,排序如下: "classpath:/resources/"> "classpath:/static/" > "classpath:/public/" 以上,这是第二种识别方式。前面,我们赘述了自定义的路径以及第一第二种方式,但是实际看来 我们最常用的就是第二种方式。直接在对应的目录名级下新建包,新建前端静态资源,系统进行自动访问即可!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值