spring学习笔记 --配置项(一)

【Druid学习笔记】一、SpringBoot集成Durid,配置项正确写法 PS:欢迎转载,但请注明出处,谢谢配合。 Druid配置test-on-borrow不生效问题一、前言二、问题现象三、Druid获取连接执行链路梳理四、问题原因1、druid-spring-boot-starter模式【推荐】1)pom.xml,引入druid相关依赖2)修改application.yml,添加 druid数据库连接池配置 ( 有druid:)2、非druid-spring-boot-starter模式1)pom.xml,引入druid相关依赖2)修改application.yml,添加. 阅读详情

 <mvc:default-servlet-handler />  和 <mvc:resources />

  一句话描述就是给spring一个默认的请求处理分发类,可以正常处理RESTful风格链接,静态资源无法访问的问题 

<mvc:resources />用的更多

优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往使用 *.do 、 *.xhtml等方式。这就决定了请求URL必须是一个带后缀的URL,而无法采用真正的REST风格的URL。

如果将DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括静态资源的请求,Spring MVC会将它们当成一个普通请求处理,因此找不到对应处理器将导致错误。

如何让Spring框架能够捕获所有URL的请求,同时又将静态资源的请求转由Web容器处理,是可将DispatcherServlet的请求映射配置为"/"的前提。由于REST是Spring3.0最重要的功能之一,所以Spring团队很看重静态资源处理这项任务,给出了堪称经典的两种解决方案。

先调整web.xml中的DispatcherServlet的配置,使其可以捕获所有的请求:

<servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

通过上面url-pattern的配置,所有URL请求都将被Spring MVC的DispatcherServlet截获。

方法1.采用<mvc:default-servlet-handler />

在springMVC-servlet.xml中配置<mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。

一般Web应用服务器默认的Servlet名称是"default",因此DefaultServletHttpRequestHandler可以找到它。如果你所有的Web应用服务器的默认Servlet名称不是"default",则需要通过default-servlet-name属性显示指定:

<mvc:default-servlet-handler default-servlet-name="所使用的Web服务器默认使用的Servlet名称" />

方法2.采用<mvc:resources />

<mvc:default-servlet-handler />将静态资源的处理经由Spring MVC框架交回Web应用服务器处理。而<mvc:resources />更进一步,由Spring MVC框架自己处理静态资源,并添加一些有用的附加值功能。

首先,<mvc:resources />允许静态资源放在任何地方,如WEB-INF目录下、类路径下等,你甚至可以将JavaScript等静态文件打到JAR包中。通过location属性指定静态资源的位置,由于location属性是Resources类型,因此可以使用诸如"classpath:"等的资源前缀指定资源位置。传统Web容器的静态资源只能放在Web容器的根路径下,<mvc:resources />完全打破了这个限制。

其次,<mvc:resources />依据当前著名的Page Speed、YSlow等浏览器优化原则对静态资源提供优化。你可以通过cacheSeconds属性指定静态资源在浏览器端的缓存时间,以充分利用浏览器端的缓存。在输出静态资源时,会根据配置设置好响应报文头的Expires 和 Cache-Control值。

在接收到静态资源的获取请求时,会检查请求头的Last-Modified值,如果静态资源没有发生变化,则直接返回303相应状态码,提示客户端使用浏览器缓存的数据,而非将静态资源的内容输出到客户端,以充分节省带宽,提高程序性能。

在springMVC-servlet中添加如下配置:

<!-- 配置静态资源,不被DispatcherServlet处理,增加缓存时间100秒 -->
<mvc:resources mapping="/resources/**" location="/resources/" cache-period="100"/>

附上spring web项目的流程运转图



Spring-Boot 读取配置项的几种方式 前面,我们已经讲解了Spring Boot项目的创建方式和Spring Boot项目启动的几种方式。 虽说Spring Boot相对Spring MVC来说,配置文件少了很多。但是在日志开发中,还是存在不少配置项需要配置。 Spring Boot项目中也会存在大量的配置项,在Spring Boot项目中有个专门的配置文件application.properties,也可以是application.yml、application.yaml,三种不同文件就是一个样式不一样而已。 Spring-Boot项目中,关 阅读详情

相关推荐

【Spring Boot】Spring Boot的系统配置 — 自定义配置项

在上面的示例中,创建了自定义的website.properties配置文件。增加了name、website、language等三个配置项,这些配置项的名称的前缀都是com.lxmb.resource。

衍生星球的博客 2898

Spring MVC静态资源处理

优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往使用 *.do 、 *.xhtml等方式。这就决定了请求URL必须是一个带后缀的URL,而无法采用真正的REST风格的URL。 如果将DispatcherServlet请求映射配置为"/"...

weixin_30809333的博客 2061

MATPOWER的安装详细教程

MATPOWER的安装包实际为一个程序包,安装教程很简单,详见本文。

半个月亮Zz的博客 3万+

关于SpringMVC的使用之<mvc:resources>标签不起作用的bug

使用SpringMVC对项目中静态资源的访问,如js、css和img等文件。

js906492314的博客 895

HFSS实战:手把手教你设计3.3-10.6GHz超宽带微带天线(附S11优化技巧)

本文提供了一份基于Ansys HFSS的超宽带微带天线实战设计指南,详细讲解了从3.3GHz到10.6GHz天线的建模、仿真与优化全流程。文章重点剖析了阻抗匹配的核心挑战,并分享了通过接地板开槽、参数化扫描及目标驱动优化等系统性技巧来优化S11曲线的实用方法,帮助射频工程师快速掌握超宽带天线设计的关键技能。

2y3u4i5o6p的博客 1080

ExoPlayer硬解码实战:如何绕过系统默认软解码提升播放性能(附完整代码)

本文深入剖析了ExoPlayer默认解码器选择机制的不确定性,并提供了通过自定义MediaCodecSelector强制启用硬解码的完整实战方案。该方案能有效解决因软解码导致的播放卡顿、黑屏花屏及高功耗问题,显著提升Android应用在各种设备上的视频播放性能与稳定性。

weixin_29295541的博客 456

SpringMVC源码研究之 mvc:resources

基于 4.3.12版本。 1. 概述 在使用SpringMVC来进行Web开发时,我们通常会选择让SpringMVC来代替Servlet容器来进行静态资源的请求处理(当然现在流行都是利用nginx等进行动静分离)。此时我们会进行如下的配置: &lt;!-- 静态资源文件; 注意这里说的是静态 --&gt; &lt;mvc:resources location="/resour...

夫礼者的专栏 5324

〔重庆理工大学〕大学物理实验--变温霍耳效应及其参数测定

每个老师要求不同,实验报告内容和数据仅供参考。

Pretty Boy Fox的博客 3044

spring第四讲

springmvc、拦截器、时间转换器、全局异常处理

m0_56528635的博客 1016

Plant Simulation智能行车/天车/起重机建模(1)-基本对象说明

摘要: MultiPortalCrane(多门式起重机)是一种灵活物料搬运设备,适用于造船、钢铁等行业,支持零件预组装、钢板/钢卷智能料场管理及设备装卸。其特点包括: 多门架协同:支持同轨道多门架运行,内置防撞检测; 模块化控制:可独立调节门架、小车及吊钩的速度、加速度和悬臂长度; 多样化搬运:通过目标位置设置或连接器实现零件运输; 故障与统计:可配置MTTR和可用率,实时监控各部件状态。 通过对话框可自定义轨道尺寸、门架数量及运动参数,并支持编程调用(如getPortals方法)。适用于需高精度定位和协同

qq_31964455的博客 314

【异常检测】【EfficientAD】论文简单梳理与代码实现

EfficientAD作为较近的一篇异常检测网络,主要还是从S-T网络入手,对齐进行了相关改进。修改特征提取器引入自动编码器hard loss以及惩罚项。

胡侃有料的博客 2854

`<mvc:default-servlet-handler />

【代码】`<mvc:default-servlet-handler />

qq_61818443的博客 760

FISCO BCOS 系列(一)—— 搭建第一个区块链网络&配置控制台指南

本文详细介绍了FISCO BCOS区块链网络的搭建与配置过程,包括环境准备、单机四节点网络搭建、控制台配置使用等核心内容。从系统要求、依赖安装开始,逐步指导如何通过脚本快速搭建区块链网络,配置控制台连接,并演示了账户管理、合约部署调用等基础操作。同时提供了多节点网络配置、常见问题解决方案以及生产环境安全建议,为开发者提供了从入门到进阶的完整指南。

分享AI、区块链技术及应用,未来已来 808

Spring学习笔记(5.Spring Bean装配之Bean的配置项及作用域)

1. Bean Bean配置项 Bean的作用域 Bean的生命周期 Bean的自动装配 Resources&ResourcesLoader 1.1 Bean配置项 id 在整个IOC容器中的唯一标识Class(必须) 具体要实例化的类3.Scope 范围,即作用域Constructor arguments 构造器参数Properties 一些属性Autowiring mode

LXChild的专栏 661

告别 SAP GUI 事务码时代:手把手教你配置 SAP Fiori Launchpad

SAP S/4HANA私有云系统安装后,Fiori Launchpad空页面问题常因多层配置未完成所致。SAP仅提供基础技术配置,实际应用启用、业务目录创建、角色授权等需实施团队完成。Fiori配置分为跨客户端层(技术目录)、客户端定制层(业务目录、空间页面)和用户个性化层三层架构。标准授权流程需依次创建业务目录、业务角色、空间页面并正确分配。SAP建议使用最新的配置工具如FLPAM和FLPCM,并采用Spaces/Pages替代已弃用的Groups概念。完整授权需六步:分配基础角色、创建业务目录、维护业务

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 537

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JavaEE Spring框架学习笔记一(理论学习之Bean配置项、作用域)

Bean的配置项有: Id 答:在ICO容器中的唯一标示 Class 答:该Bean对应的类 Scope 答:该Bean在IOC容器中的作用域 Scopr可选value singleton:单例,指一个Bean容器中只存在一个Bean实例 prototype:每次请求(每次使用)创建新的实例,destroy方式不生效 request:每次http请求都会创建一个实例且仅在当前r

黄嘉晖的博客 麻瓜 593

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java学习笔记38:通过Spring Bean 注入static变量,来设计一套适合测试,开发,生产环境的配置项

这边文章的目的主要是为了在spring开发web项目的时候,让我们的测试,开发,生产环境的配置项 .properties作为配置文件。 我们首先需要建立一个config文件夹,然后创建开发,测试,生产环境的.properties配置项文件。 例如,dev.properties文件为开发环境,pre.properties文件为生产环境。 dev.properties配置内容为

自娱自乐的代码人 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java static spring_Java学习笔记38:通过Spring Bean 注入static变量,来设计一套适合测试,开发,生产环境的配置项...

这边文章的目的主要是为了在spring开发web项目的时候,让我们的测试,开发,生产环境的配置项.properties作为配置文件。我们首先需要建立一个config文件夹,然后创建开发,测试,生产环境的.properties配置项文件。 例如,dev.properties文件为开发环境,pre.properties文件为生产环境。dev.properties配置内容为:#testtest.user...

weixin_42601134的博客 329

Spring Boot的两种配置文件,自定义配置项,以及打包与运行-----SpringBoot菜鸟小白学习笔记入门图解,详细!!!

五、spring boot支持两种配置文件 属性文件:application.properties YAML格式:application.yml YAML的语法:YAML是一种简洁的非标记语言,YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。 YAML的语法格式:标准格式:key:(空格)value 使用空格代表层级关系,以:结束 我们首先在上篇文章的应用的基础上加上如图的配置文件。上篇文章的传送门 然后我们首先在.properties文件中加入如下内容: se

可及的小屋 528

Spring Boot 中配置项读取

对于某些需要通过 Java 代码来设置的配置,你可以在 Spring 配置类中通过@Bean方式创建并配置。@Bean这种方式通常用于更复杂的场景,例如需要通过逻辑计算或动态构造的属性。Spring Boot 提供了丰富的配置项读取机制,适应不同场景需求。无论是简单的配置注入,还是复杂的层级结构映射,都能通过@Value等方式轻松实现。在项目中合理地选择和组织配置方式,不仅可以提高代码的可读性和可维护性,还能灵活应对环境变化带来的配置需求。

qq_56694800的博客 1693

spring.factories的常用配置项

spring.factories的常用配置项

毅香雪海的博客 2515

Spring MVC与Spring Boot文件上传配置项对比

Spring MVC与Spring Boot文件上传配置项对比

爱的叹息的专栏 930

Spring的配置项与作用域

在Spring的IOC里,把一切配置到IOC容器里的实体或对象都称为bean。 1、配置项 id:在整个IOC容器中,这个配置项配置bean的唯一标识 class:具体要实例化的类(必须) scope:范围、作用域 constructor arguments:构造器的参数 properties:属性 autowiring mode:自动装配的模式 lazy-initialization mode:懒加载模式 initialization/destruction method:初始化/销毁的

b15735105314的博客 241

spring boot默认的配置项

官网地址 https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html#common-application-properties spring boot的配置项:分2类 1&gt; 默认配置项目:spring boot 约定优于配置的特点 2&gt; 自定...

zhuhaoyu6666的博客 3421

全面解析Spring配置项问题

本文就Spring配置项解析问题展开分析,这其中涉及到bean定义注册表后置处理、bean工厂后置处理、工厂bean等Spring相关的概念。本文将以上述问题作为切入点,进行分析和展开介绍。 问题背景介绍 我们的项目中某次依赖了某个第三方包及其中的XML文件,相关代码如下所示:XML文件中定义了Mybatis相关的bean,以及对自定义数据源myDataSource的引用。在@Configuration配置类中,我们引入了XML文件,并通过@Bean注解的方式声明了数据源bean。 <!

weixin_71690375的博客 251

Spring的配置项及其作用分析

Spring bean的一些基础知识。

复制乔布斯 1597
上一篇: 如何正确使用AOP
下一篇: IDEA--个性化配置
信-念
博客等级 码龄12年 9粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值