Spring WebJars 教程
创始人
2024-02-22 03:01:18
0

Spring WebJars 教程展示了如何在 Spring Web 应用程序中使用 WebJar。

Spring是一个流行的Java应用程序框架,用于创建企业 应用。

Webjars

WebJars是打包的客户端Web库(例如jQuery或Semantic UI) 到 JAR(Java 存档)文件中。WebJars 自动化前端工作 库和资源。

Spring WebJar 示例

在下面的示例中,我们使用 Semantic-UI WebJar。语义UI是一种流行的 CSS 框架。

pom.xml
src
├───main
│   ├───java
│   │   └───com
│   │       └───zetcode
│   │           ├───config
│   │           │       MyWebInitializer.java
│   │           │       WebConfig.java
│   │           └───controller
│   │                   MyController.java
│   └───resources
│       │   logback.xml
│       └───templates
│               index.html
└───test└───java    

这是项目结构。

pom.xml


4.0.0com.zetcodeWebJarEx1.0-SNAPSHOTwarUTF-817175.1.4.RELEASE3.0.11.RELEASEch.qos.logbacklogback-classic1.4.0javax.servletjavax.servlet-api4.0.1providedorg.springframeworkspring-webmvc${spring-version}org.webjarsSemantic-UI2.4.1org.webjarswebjars-locator0.34org.thymeleafthymeleaf-spring5${thymeleaf-version}org.thymeleafthymeleaf${thymeleaf-version}org.apache.maven.pluginsmaven-war-plugin3.3.2

pom.xml我们有项目依赖项。

org.webjarsSemantic-UI2.4.1

我们使用Semantic-UI WebJar。

org.webjarswebjars-locator0.34

webjars-locator允许我们直接不带版本号引用资产,自动检测引用的资产版本。

resources/logback.xml


%d{HH:mm:ss.SSS} %blue(%-5level) %magenta(%logger{36}) - %msg %n

这是配置logback.xml

com/zetcode/config/MyWebInitializer.java
package com.zetcode.config;import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.FrameworkServlet;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;@Configuration
public class MyWebInitializer extendsAbstractAnnotationConfigDispatcherServletInitializer {@Overrideprotected Class[] getRootConfigClasses() {return null;}@Overrideprotected Class[] getServletConfigClasses() {return new Class[]{WebConfig.class};}@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}
}

MyWebInitializer初始化 Spring Web 应用程序。它包含一个 配置类:。WebConfig

com/zetcode/config/WebConfig.java
package com.zetcode.config;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.thymeleaf.spring5.SpringTemplateEngine;
import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
import org.thymeleaf.spring5.view.ThymeleafViewResolver;@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"com.zetcode"})
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate ApplicationContext applicationContext;@Beanpublic SpringResourceTemplateResolver templateResolver() {var templateResolver = new SpringResourceTemplateResolver();templateResolver.setApplicationContext(applicationContext);templateResolver.setPrefix("classpath:templates/");templateResolver.setSuffix(".html");return templateResolver;}@Beanpublic SpringTemplateEngine templateEngine() {var templateEngine = new SpringTemplateEngine();templateEngine.setTemplateResolver(templateResolver());templateEngine.setEnableSpringELCompiler(true);return templateEngine;}@Beanpublic ViewResolver viewResolver() {var resolver = new ThymeleafViewResolver();var registry = new ViewResolverRegistry(null, applicationContext);resolver.setTemplateEngine(templateEngine());registry.viewResolver(resolver);return resolver;}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/webjars/**").addResourceLocations("/webjars/").resourceChain(false);}@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {configurer.enable();}
}

配置百里香叶模板引擎,告诉 Spring 在哪里查找 WebJars 并启用转发到默认 servlet 用于处理静态资源。WebConfig

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/webjars/**").addResourceLocations("/webjars/").resourceChain(false);
}

我们将通过路径引用WebJars。 必须为版本无关而调用该方法 网络罐子。/webjars/resourceChain

com/zetcode/controller/MyController.java
package com.zetcode.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;import java.util.List;@Controller
public class MyController {@GetMapping(value = "/")public String home(Model model) {var words = List.of("wood", "star", "cloud", "water","river", "spring");model.addAttribute("words", words);return "index";}
}  

MyController包含主页的一个路由。我们发送一些 数据到模板。数据将以 HTML 表格的形式呈现,该表格将 使用语义 UI 设置样式。

resources/templates/index.html


Home page

English words

IndexWord
IndexA word

这是主页。


我们链接到来自WebJar的文件。semantic.css

CSS 类来自 Semantic-UI 库。

在本教程中,我们创建了一个语义UIWebJar来设置HTML样式。 桌子。

相关内容

热门资讯

金华市修订完善知识产权强市建设... 近期,《金华市人民政府关于深入实施知识产权强市建设的若干意见》(以下简称《意见》)修订完成。12月2...
“地质瑰宝”披上法治“防护衣”... 华声在线12月25日讯(全媒体记者 杨元崇)今天,《湘西世界地质公园保护条例》正式公布。 湘西土家族...
120亿元!安徽真金白银推进学... 记者近日从安徽省财政厅获悉,2025年,省财政共统筹资金120亿元落实各项学生资助政策。财政资金的持...
国家出台首个支持西部陆海新通道... 12月25日,“金融支持加快西部陆海新通道建设有关情况”新闻发布会在北京举行。中国人民银行党委委员、...
广东华企通法律咨询有限公司成立... 天眼查显示,近日,广东华企通法律咨询有限公司成立,法定代表人为彭俊翔,注册资本500万人民币,由盈合...
低空经济持续获政策支持 业绩有... 人民财讯12月26日电,低空经济作为国家战略性新兴产业,持续受到政策支持。 作为万亿级产业,低空经济...
【深圳特区报】从“制度设计图”... 近日,深圳市财政局召开“数据资产全过程管理试点工作培训暨经验交流会”(以下简称“培训交流会”),围绕...
原创 重... 在情感的漩涡中,我们常常看到悲剧的发生。近日,一则令人心痛的消息震动了整个网络——重庆一男子因感情纠...
极氪回应明年车辆质保权益等问题... 【CNMO科技消息】近日,极氪汽车发布《极氪零距离 | 你问我答》公告,就用户关注的车辆质保、免费充...
关于海南育儿补贴制度实施热点问... 户籍刚迁入海南的婴幼儿是否能享受育儿补贴;如何快速了解补贴申领流程……12月25日,海南省新闻办公室...