From 763e381e13a02217275367b6daa947833a7f3580 Mon Sep 17 00:00:00 2001 From: mrfoxygmfr Date: Mon, 28 Apr 2025 00:44:45 +0300 Subject: feat(http): add http server configuration --- build.gradle.kts | 2 + .../http/config/HttpConfig.java | 53 ++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/config/HttpConfig.java diff --git a/build.gradle.kts b/build.gradle.kts index 8b71ebc..4db3c43 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,8 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-actuator") implementation("io.hypersistence:hypersistence-utils-hibernate-63:3.9.5") + implementation("org.thymeleaf:thymeleaf") + implementation("org.thymeleaf:thymeleaf-spring6") compileOnly("org.projectlombok:lombok") compileOnly("jakarta.persistence:jakarta.persistence-api") diff --git a/src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/config/HttpConfig.java b/src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/config/HttpConfig.java new file mode 100644 index 0000000..35e1ccd --- /dev/null +++ b/src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/config/HttpConfig.java @@ -0,0 +1,53 @@ +package ru.mrfoxygmfr.warehouse_accounting.http.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.thymeleaf.spring6.SpringTemplateEngine; +import org.thymeleaf.spring6.view.ThymeleafViewResolver; +import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver; + +@Configuration +public class HttpConfig implements WebMvcConfigurer { + + @Bean + public ClassLoaderTemplateResolver templateResolver() { + + var templateResolver = new ClassLoaderTemplateResolver(); + + templateResolver.setPrefix("templates/"); + templateResolver.setCacheable(false); + templateResolver.setSuffix(".html"); + templateResolver.setTemplateMode("HTML"); + templateResolver.setCharacterEncoding("UTF-8"); + + return templateResolver; + } + + @Bean + public SpringTemplateEngine templateEngine() { + + var templateEngine = new SpringTemplateEngine(); + templateEngine.setTemplateResolver(templateResolver()); + + return templateEngine; + } + + @Bean + public ViewResolver viewResolver() { + + var viewResolver = new ThymeleafViewResolver(); + + viewResolver.setTemplateEngine(templateEngine()); + viewResolver.setCharacterEncoding("UTF-8"); + + return viewResolver; + } + + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addViewController("/").setViewName("operations"); + } +} -- cgit mrf-deployment