spring如何加载静态资源

fiy 其他 19

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Spring框架提供了一种简便的方式来加载和处理静态资源。以下是Spring加载静态资源的几种方式:

    1. 通过WebMvcConfigurer配置类
      在Spring中,我们可以通过实现WebMvcConfigurer接口来配置静态资源的加载。具体步骤如下:
    • 创建一个类并实现WebMvcConfigurer接口。
    • 重写addResourceHandlers方法,并在其中通过addResourceHandler方法指定映射的URL路径,通过addResourceLocations方法指定资源的实际路径。

    示例代码如下:

    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**")
                    .addResourceLocations("classpath:/static/");
        }
    }
    

    在上述示例代码中,静态资源的URL路径为/static/**,资源的实际路径为classpath:/static/。

    1. 使用@EnableWebMvc注解
      另一种配置Spring加载静态资源的方式是使用@EnableWebMvc注解。该注解会启用默认的Spring MVC配置,并自动配置静态资源的加载。

    示例代码如下:

    @Configuration
    @EnableWebMvc
    public class WebConfig {
    }
    

    在上述示例代码中,通过@EnableWebMvc注解启用了Spring MVC的默认配置。

    1. 使用WebMvcConfigurerAdapter(已过时)
      在较早的Spring版本中,我们可以通过继承WebMvcConfigurerAdapter类来配置静态资源的加载。但是在最新的Spring版本中,该类已被标记为过时。

    示例代码如下:

    @Configuration
    public class WebMvcConfig extends WebMvcConfigurerAdapter {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**")
                    .addResourceLocations("classpath:/static/");
        }
    }
    

    需要注意的是,WebMvcConfigurerAdapter类已经过时,不建议使用。

    总结:
    Spring加载静态资源可以通过实现WebMvcConfigurer接口或使用@EnableWebMvc注解来完成。这两种方式都能有效地配置静态资源的加载,并提供了灵活性和可扩展性。另外,需要注意WebMvcConfigurerAdapter类已经过时,不建议使用。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Spring框架提供了一个简单而灵活的方法来加载静态资源,包括CSS、JavaScript、图片等。下面是Spring加载静态资源的几种方法:

    1. 使用默认的静态资源处理器:Spring提供了一个默认的静态资源处理器DefaultServletHttpRequestHandler,它会根据请求的URL直接将静态资源返回给客户端。只需要在web.xml文件中添加如下配置:
    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/static/*</url-pattern>
    </servlet-mapping>
    

    这样,所有以/static/开头的URL都会被DefaultServletHttpRequestHandler处理,对应的静态资源会直接返回给客户端。

    1. 使用资源处理器以及资源解析器:Spring提供了资源处理器和资源解析器,通过配置它们来加载静态资源。首先需要在Spring配置文件中配置资源处理器和资源解析器,例如:
    <mvc:resources mapping="/static/**" location="/static/"/>
    

    这样,所有以/static/开头的URL都会被资源处理器处理,并在配置的location下查找对应的静态资源。

    1. 自定义静态资源处理器:如果默认的静态资源处理器不满足需求,可以自定义一个静态资源处理器。需要实现org.springframework.web.servlet.ResourceHttpRequestHandler接口,并在Spring配置文件中配置该处理器,例如:
    <mvc:resources mapping="/static/**" location="/static/" resource-resolver="customResourceResolver" resource-handler="customResourceHandler"/>
    
    <bean id="customResourceResolver" class="com.example.CustomResourceResolver"/>
    <bean id="customResourceHandler" class="com.example.CustomResourceHandler"/>
    

    其中,CustomResourceResolver是自定义的资源解析器,CustomResourceHandler是自定义的资源处理器。

    1. 使用前端框架:如果使用了前端框架如React、Angular等,可以使用框架提供的功能来加载静态资源。例如,React使用React Scripts来加载静态资源,Angular使用Angular CLI来加载静态资源。可以根据具体的前端框架来配置和使用相应的静态资源加载方法。

    2. 使用CDN加速:如果静态资源较大或需要全球分发,可以使用CDN(内容分发网络)来加速加载。CDN会将静态资源缓存到分布在全球各地的服务器上,通过就近访问提供更快的加载速度。可以在Spring配置文件中配置CDN,将静态资源请求重定向到CDN服务器。

    总结:
    Spring加载静态资源的方法有很多种,可以根据具体的需求和场景选择合适的方法。默认的静态资源处理器、资源处理器和资源解析器以及自定义的静态资源处理器都是常用的方式。此外,还可以根据使用的前端框架来进行相应的配置和使用。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Spring框架提供了多种加载静态资源的方式,下面将从方法和操作流程两个方面来详细讲解如何加载静态资源。

    方法一:使用Spring MVC配置文件

    操作流程:

    1. 在Spring MVC的配置文件中添加以下代码:
    <mvc:resources mapping="/static/**" location="/static/"/>
    

    其中/static/**为对应的静态资源路径,/static/为静态资源所在的文件夹路径。

    1. 创建一个/static文件夹,将静态资源放入其中。

    这样就完成了对静态资源的加载,可以通过http://localhost:8080/static/资源名来访问静态资源。

    方法二:使用WebMvcConfigurer接口

    操作流程:

    1. 创建一个配置类,并实现WebMvcConfigurer接口。
    @Configuration
    public class WebConfig implements WebMvcConfigurer {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**")
                    .addResourceLocations("classpath:/static/");
        }
    }
    

    其中/static/**为对应的静态资源路径,classpath:/static/为静态资源所在的文件夹路径。

    1. 创建一个/static文件夹,将静态资源放入其中。

    2. 在Spring Boot的启动类上添加@EnableWebMvc注解。

    @EnableWebMvc
    @SpringBootApplication
    public class Application {
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    

    这样就完成了对静态资源的加载,可以通过http://localhost:8080/static/资源名来访问静态资源。

    方法三:使用classpath静态资源处理器

    操作流程:

    1. 在Spring MVC的配置文件中添加以下代码:
    <mvc:resources mapping="/static/**" location="classpath:/static/"/>
    

    其中/static/**为对应的静态资源路径,classpath:/static/为静态资源所在的文件夹路径。

    1. 创建一个/static文件夹,将静态资源放入其中。

    这样就完成了对静态资源的加载,可以通过http://localhost:8080/static/资源名来访问静态资源。

    以上就是Spring框架加载静态资源的三种方法,根据实际需求选择合适的方法来加载静态资源。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部