当前位置: 首页 > news >正文

做网站自己租服务器还是网络公司福州seo网址优化公司

做网站自己租服务器还是网络公司,福州seo网址优化公司,用xp做网站是否先搭建iis,武汉 门户网站建设Web开发探究 简介 其实SpringBoot的东西用起来非常简单,因为SpringBoot最大的特点就是自动装配 使用SpringBoot的步骤: 1、创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块自动配置好 2、手动…

Web开发探究

简介

其实SpringBoot的东西用起来非常简单,因为SpringBoot最大的特点就是自动装配

使用SpringBoot的步骤:

1、创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块自动配置好

2、手动在配置文件中配置部分配置项目就可以运行起来了

3、专注编写业务代码,不需要考虑以前那样一大堆的配置了。

要熟悉掌握开发,之前学习的自动配置的原理一定要搞明白!

比如SpringBoot到底帮我们配置了什么?我们能不能修改?我们能修改哪些配置?我们能不能扩展?

  • 向容器中自动配置组件 :*** Autoconfiguration
  • 自动配置类,封装配置文件的内容:***Properties

静态资源处理

静态资源映射规则

首先,我们搭建一个普通的SpringBoot项目,回顾一下HelloWorld程序!

写请求非常简单,那我们要引入我们前端资源,我们项目中有许多的静态资源,比如css,js等文件,这个SpringBoot怎么处理呢?

如果我们是一个web应用,我们的main下会有一个webapp,我们以前都是将所有的页面导在这里面的,对吧!但是我们现在的pom呢,打包方式是为jar的方式,那么这种方式SpringBoot能不能来给我们写页面呢?当然是可以的,但是SpringBoot对于静态资源放置的位置,是有规定的!

我们先来聊聊这个静态资源映射规则:

  • SpringBoot中,SpringMVC的web配置都在 WebMvcAutoConfiguration 这个配置类里面;

  • 我们可以去看看 WebMvcAutoConfigurationAdapter 中有很多配置方法;

  • 有一个方法:addResourceHandlers 添加资源处理

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {if (!this.resourceProperties.isAddMappings()) {// 已禁用默认资源处理logger.debug("Default resource handling disabled");return;}// 缓存控制Duration cachePeriod = this.resourceProperties.getCache().getPeriod();CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();// webjars 配置if (!registry.hasMappingForPattern("/webjars/**")) {customizeResourceHandlerRegistration(registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/").setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl));}// 静态资源配置String staticPathPattern = this.mvcProperties.getStaticPathPattern();if (!registry.hasMappingForPattern(staticPathPattern)) {customizeResourceHandlerRegistration(registry.addResourceHandler(staticPathPattern).addResourceLocations(getResourceLocations(this.resourceProperties.getStaticLocations())).setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl));}
    }
    

    读一下源代码:比如所有的 /webjars/** , 都需要去 classpath:/META-INF/resources/webjars/ 找对应的资源;

什么是webjars 呢?

Webjars本质就是以jar包的方式引入我们的静态资源 , 我们以前要导入一个静态资源文件,直接导入即可。

第一种静态资源映射规则

使用SpringBoot需要使用Webjars,我们可以去搜索一下:

网站:https://www.webjars.org

要使用jQuery,我们只要要引入jQuery对应版本的pom依赖即可!

<dependency><groupId>org.webjars</groupId><artifactId>jquery</artifactId><version>3.4.1</version>
</dependency>

导入完毕,查看webjars目录结构,并访问Jquery.js文件!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vqjq7CV4-1691585140637)(SpringBoot10:Web开发静态资源处理.assets/1595506633980.png)]

访问:只要是静态资源,SpringBoot就会去对应的路径寻找资源,我们这里访问:http://localhost:8080/webjars/jquery/3.4.1/jquery.js

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QYYxIL1C-1691585140638)(SpringBoot10:Web开发静态资源处理.assets/1595506019658.png)]

第二种静态资源映射规则(常用)

1、那我们项目中要是使用自己的静态资源该怎么导入呢?我们看下一行代码;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3TysT33O-1691585140639)(SpringBoot10:Web开发静态资源处理.assets/1595516976999.png)]

2、我们去找staticPathPattern发现第二种映射规则 :/** , 访问当前的项目任意资源,它会去找 resourceProperties 这个类,我们可以点进去看一下分析:

// 进入方法
public String[] getStaticLocations() {return this.staticLocations;
}
// 找到对应的值
private String[] staticLocations = CLASSPATH_RESOURCE_LOCATIONS;
// 找到路径
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/","classpath:/resources/", "classpath:/static/", "classpath:/public/" 
};

3、ResourceProperties 可以设置和我们静态资源有关的参数;这里面指向了它会去寻找资源的文件夹,即上面数组的内容。

4、所以得出结论,以下四个目录存放的静态资源可以被我们识别:

"classpath:/META-INF/resources/"
"classpath:/resources/"
"classpath:/static/"
"classpath:/public/"

5、我们可以在resources根目录下新建对应的文件夹,都可以存放我们的静态文件;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FvsvpBPU-1691585140639)(SpringBoot10:Web开发静态资源处理.assets/1595517831392.png)]

6、比如我们访问 http://localhost:8080/1.js , 他就会去这些文件夹中寻找对应的静态资源文件;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UdGKTzPi-1691585140640)(SpringBoot10:Web开发静态资源处理.assets/1595517869049.png)]

自定义静态资源路径(知道这种方式就行一般不会用)

我们也可以自己通过配置文件来指定一下,哪些文件夹是需要我们放静态资源文件的,在application.properties中配置;

spring.resources.static-locations=classpath:/coding/,classpath:/ss/

总结

  1. 在springboot,我们可以使用以下方式处理静态资源
    • webjars localhost:8080/webjars/
    • public,static,/**,resources localhost:8080/
  2. 优先级:resources > static(默认) > public

首页处理

静态资源文件夹说完后,我们继续向下看源码!可以看到一个欢迎页的映射,就是我们的首页!

@Bean
public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext,FormattingConversionService mvcConversionService, ResourceUrlProvider mvcResourceUrlProvider) {WelcomePageHandlerMapping welcomePageHandlerMapping = new WelcomePageHandlerMapping(new TemplateAvailabilityProviders(applicationContext), applicationContext, getWelcomePage(),this.mvcProperties.getStaticPathPattern());welcomePageHandlerMapping.setInterceptors(getInterceptors(mvcConversionService, mvcResourceUrlProvider));welcomePageHandlerMapping.setCorsConfigurations(getCorsConfigurations());return welcomePageHandlerMapping;
}

点进去继续看

private Optional<Resource> getWelcomePage() {String[] locations = getResourceLocations(this.resourceProperties.getStaticLocations());// ::是java8 中新引入的运算符// Class::function的时候function是属于Class的,应该是静态方法。// this::function的funtion是属于这个对象的。// 简而言之,就是一种语法糖而已,是一种简写return Arrays.stream(locations).map(this::getIndexHtml).filter(this::isReadable).findFirst();
}
// 欢迎页就是一个location下的的 index.html 而已
private Resource getIndexHtml(String location) {return this.resourceLoader.getResource(location + "index.html");
}

截图说明

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ISJX1DTC-1691585140641)(SpringBoot10:Web开发静态资源处理.assets/1595550098734.png)]

  • 欢迎页,静态资源文件夹下的所有 index.html 页面;被 /** 映射。

  • 比如我访问 http://localhost:8080/ ,就会找静态资源文件夹下的 index.html

  • 新建一个 index.html ,在我们上面的3个目录( public,static,resources)中任意一个;然后访问测试 http://localhost:8080/ 看结果!

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y2HoCVKQ-1691585140642)(SpringBoot10:Web开发静态资源处理.assets/1595550394178.png)]

1、关于网站图标说明

欢迎页面(Welcome Page)

Spring Boot supports both static and templated welcome pages. It first looks for an index.html file in the configured static content locations. If one is not found, it then looks for an index template. If either is found, it is automatically used as the welcome page of the application.

自定义应用图标(Custom Facicon)

Spring Boot looks for a favicon.ico in the configured static content locations and the root of the classpath (in that order). If such a file is present, it is automatically used as the favicon of the application.

2、首页图标

2.2.x之前的版本(如2.1.7)springboot是这样

与其他静态资源一样,Spring Boot在配置的静态内容位置中查找 favicon.ico。如果存在这样的文件,它将自动用作应用程序的favicon。

  1. 关闭SpringBoot默认图标

    #关闭默认图标
    spring.mvc.favicon.enabled=false
    
  2. 自己放一个图标在静态资源目录下,我放在 public 目录下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JjMKn6B7-1691585140643)(SpringBoot10:Web开发静态资源处理.assets/1595554357772.png)]

  3. 清除浏览器缓存Ctrl + F5!刷新网页,发现图标已经变成自己的了!

2.2.x之后的版本(如2.3.0)直接执行2和3就可以了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ED7PgQjp-1691585140644)(SpringBoot10:Web开发静态资源处理.assets/1595554118099.png)]

http://www.ds6.com.cn/news/72212.html

相关文章:

  • 德国站有哪些做站外秒杀的网站国内最大的搜索引擎
  • 国外做评论的网站如何自己开发一个平台
  • 网站建设和维护工作内容淘数据官网
  • 做网站都要会些什么2023广东最新疫情
  • 为什么不推荐免费建站个人小白如何做手游代理
  • 九江网站建设公司足球直播在线直播观看免费cctv5
  • 厦门网站建设是什么意思上海seo推广整站
  • 网站中数据查询如何做seo实战密码电子版
  • 网上赚钱方法seo优化步骤
  • 廊坊做企业网站公司英语seo什么意思
  • 电商网站维护费用新闻热点素材
  • 用python做网站后台地推拉新app推广平台有哪些
  • 做网站 是不是懂psseo优化实训总结
  • 做烘培的网站有哪些广州网站优化软件
  • 万网可以花钱做网站吗株洲24小时新闻
  • 锡林郭勒盟建设厅官方网站个人网站怎么建立
  • 教你如何做网站百度权重查询爱站网
  • 商城型网站建设代理加盟上海网络seo
  • 德清网站建设互联网销售包括哪些
  • 做网站广告词找王思奇域名ip查询入口
  • 分享惠网站怎么做怎样在百度上做免费推广
  • 网站的内容包括什么企业课程培训
  • 网站域名备案与解析淘宝seo是什么意思啊
  • 网站开发的背景与环境网址大全网站
  • jsp写的网站怎么创建自己的游戏网站
  • Wordpress虚拟域名杭州网站优化多少钱
  • 加强网站建设和维护工作网站制作app免费软件
  • 深圳专业做网站排名公司哪家好网址注册
  • 乐拾seo官网优化哪家专业
  • 做网站需求自助建站网