UndertowServer+SpringMVC+Thymeleaf模板引擎构建轻量级的web项目

这两周需要写一个页面来请求另一个服务中的接口,服务器采用了超轻量级的undertow,模板引擎采用的是Thymeleaf,在寻找页面资源位置这个地方难住了我。下面分享一下,这方面的代码。

SpringWebConfig方面:

public class SpringWebConfig extends WebMvcConfigurerAdapter {    private static boolean initialized = false;

@Bean    public static PropertySourcesPlaceholderConfigurer config() {        return SpringConfigHelper.createPlaceholderConfigBean("classpath:prime.cfg");    }

/**     * Spring容器初始化完成后回调该函数     * 通过该机制可以动态扩展bean实例配置     * 用于工作服务框架加载工作服务实现相关bean     *     * @param basePackage 扩展bean扫描路径     * @return ApplicationListener实例     */    @Bean    public ApplicationListener<ContextRefreshedEvent> initializedEvent(            @Value("${Optimus.Prime.ServiceBasePackage:}") String basePackage) {        return new ApplicationListener<ContextRefreshedEvent>() {            @Override            public void onApplicationEvent(ContextRefreshedEvent event) {                if (!initialized) {                    initialized = true;                    SpringConfigHelper.appendBeanFromPackage(                            (AnnotationConfigWebApplicationContext) event.getApplicationContext(),                            basePackage);                }            }        };    }

/**     * 模板解析器     * @return 解析器     */    @Bean    public SpringResourceTemplateResolver templateResolver() {        SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();        resolver.setPrefix("classpath:/template/");        resolver.setSuffix(".html");        resolver.setTemplateMode(TemplateMode.HTML);        resolver.setCacheable(false);        resolver.setCharacterEncoding("UTF-8");        return resolver;    }

/**     * 解析器     * @param templateResolver 解析器     * @return     */    @Bean    public SpringTemplateEngine templateEngine(SpringResourceTemplateResolver templateResolver) {        SpringTemplateEngine engine = new SpringTemplateEngine();        engine.setTemplateResolver(templateResolver);

return engine;    }    /**     * 视图解析器     * @param templateEngine 解析器     * @return  视图解析     */    @Bean    public ThymeleafViewResolver viewResolver(SpringTemplateEngine templateEngine) {        ThymeleafViewResolver resolver = new ThymeleafViewResolver();        resolver.setTemplateEngine(templateEngine);        resolver.setCharacterEncoding("UTF-8");

return resolver;    }}

UndertowServer 的启动方法:
public int start() {    DeploymentInfo servletBuilder = Servlets.deployment()            .setClassLoader(UndertowServer.class.getClassLoader())            .setContextPath("/TAE/rest/v1")            .setDeploymentName("test.war")            .addServletContextAttribute(                    SpringContextListener.PARENT_CONTEXT, context)            .addListeners(                    Servlets.listener(SpringContextListener.class))            .addServlets(                    Servlets.servlet("resource", DispatcherServlet.class)                            .addInitParam("contextClass",                                    "org.springframework.web.context.support"                                            + ".AnnotationConfigWebApplicationContext")                            .addInitParam("contextConfigLocation",                                    configClass)                            .addMapping("/*")                            .setLoadOnStartup(1)            )            .addServletContextAttribute(WebSocketDeploymentInfo.ATTRIBUTE_NAME,                    new WebSocketDeploymentInfo()                            .setBuffers(new DefaultByteBufferPool(true, 100))            );

DeploymentManager manager = Servlets.defaultContainer()            .addDeployment(servletBuilder);    manager.deploy();

try {        PathHandler path = Handlers.path(Handlers.redirect("/"))                .addPrefixPath("/", manager.start());

server = Undertow.builder()                .addHttpListener(port, host)                .setHandler(path)                .build();

server.start();    } catch (Exception e) {        log.fatal("cannot start web server", e);        return CommonError.FATAL_FAIL;    }    return CommonError.SUCCESS;}


原文地址:https://www.cnblogs.com/jetHu/p/8634769.html

时间: 2024-07-30 17:48:46

UndertowServer+SpringMVC+Thymeleaf模板引擎构建轻量级的web项目的相关文章

Thymeleaf模板引擎的初步使用

在springboot中,推荐使用的模板引擎是Thymeleaf模板引擎,它提供了完美的Spring MVC的支持.下面就简单的介绍一下Thymeleaf模板引擎的使用. 在controller层中,使用在类上使用@controller注解,注意的是,这里不是@restController注解,因为@restController注解是将结果作为json字符串进行返回的,并不是调用模板. 方法中,注入参数,Model model.然后同springmvc中的modelandview一样,model

SpringBoot:2.SpringBoot整合Thymeleaf模板引擎渲染web视图

在Web开发过程中,Spring Boot可以通过@RestController来返回json数据,那如何渲染Web页面?Spring Boot提供了多种默认渲染html的模板引擎,主要有以下几种: Thymeleaf FreeMarker Velocity Groovy Mustache Spring Boot 推荐使用这些模板引擎来代替 Jsp,Thymeleaf 只是其中一种,下面我们来简单聊聊Thymeleaf及实践一下如何整合Spring Boot和Thymeleaf. 1.Thyme

Spring Boot? 使用Thymeleaf模板引擎渲染web视图

静态资源访问 在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static /public /resources /META-INF/resources 举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件.启动程序后,尝试访问http://localhost:8080/D.jpg.如能显示图片,配置成功. 渲染

thymeleaf模板引擎简介

一:thymeleaf 学习笔记---http://www.blogjava.net/bjwulin/articles/395185.html thymeleaf是一个支持html原型的自然引擎,它在html标签增加额外的属性来达到模板+数据的展示方式,由于浏览器解释html时,忽略未定义的标签属性,因此thymeleaf的模板可以静态运行. 由于thymeleaf在内存缓存解析后的模板,解析后的模板是基于tree的dom节点树,因此thymeleaf适用于一般的web页面,不适合基于数据的xm

Thymeleaf模板引擎使用

Thymeleaf模板引擎使用 什么是Thymeleaf Thymeleaf是一个Java库.它是一个XML / XHTML / HTML5模板引擎,能够在模板文件上应用一组转换,将程序产生的数据或者文本显示到模板文件上. Thymeleaf依赖的jar包 要使用Thymeleaf,需要在我们的web应用的classpath路径中引入相关的jar,如下: thymeleaf-2.1.3.RELEASE.jarognl-3.0.6.jarjavassist-3.16.1-GA.jarunbesca

spring boot Thymeleaf模板引擎 最简单输出例子

spring boot  Thymeleaf模板引擎  最简单输出例子 控制器代码如下: @GetMapping(value = "/test")public String test(Model model){ List<Boy> boy = new ArrayList<Boy>(); boy.add(new Boy("xx",11)); boy.add(new Boy("yy",22)); boy.add(new Boy

jdbcTemplate 和 Thymeleaf模板引擎 查询 到模板赋值例子

二.  jdbcTemplate 和 Thymeleaf模板引擎  最简单输出例子 控制器代码 @GetMapping(value = "/test2") public String test2(Model model){ sql = "SELECT * FROM boy "; List queryList = jdbcTemplate.queryForList(sql); model.addAttribute("boy", queryList)

SpringBoot入门篇--使用Thymeleaf模板引擎进行页面的渲染

在做WEB开发的时候,我们不可避免的就是在前端页面之间进行跳转,中间进行数据的查询等等操作.我们在使用SpringBoot之前包括我在内其实大部分都是用的是JSP页面,可以说使用的已经很熟悉.但是我们在使用springBoot开发框架以后我们会发现一个致命的问题,就是SpringBoot对Jsp的支持可以说是惨不忍睹,官方推荐我们进行使用的是Thymeleaf模板引擎进行.其实我这里也没搞清楚模板引擎原理是什么,以后有机会再深入了解,我们只需要学会怎么用就行,目前而言.当然模板引擎有很多,比如f

(二)SpringBoot基础篇- 静态资源的访问及Thymeleaf模板引擎的使用

一.描述 在应用系统开发的过程中,不可避免的需要使用静态资源(浏览器看的懂,他可以有变量,例:HTML页面,css样式文件,文本,属性文件,图片等): 并且SpringBoot内置了Thymeleaf模板引擎,可以使用模板引擎进行渲染处理,默认版本为2.1,可以重新定义Thymeleaf的版本号,在maven的配置文件中配置如下内容: <properties> <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> &l