You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tamguo/tamguo-bms/src/main/java/com/tamguo/config/web/ThymeleafConfig.java

89 lines
7.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.tamguo.config.web;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import org.thymeleaf.spring5.view.ThymeleafViewResolver;
import com.tamguo.common.utils.SystemConstant;
// 标识这是一个Spring的组件类用于配置Thymeleaf视图相关的一些静态变量通过实现EnvironmentAware接口可以获取Spring的应用程序环境信息
// 进而从环境配置中获取特定的属性值并将这些属性值以及一些常量值设置到ThymeleafViewResolver的静态变量中使得在Thymeleaf模板中可以方便地使用这些变量进行页面渲染等操作。
@Component
public class ThymeleafConfig implements EnvironmentAware {
// 通过@Resource注解注入Spring的Environment对象用于获取应用程序的配置属性信息例如从配置文件如application.properties或application.yml等中读取各种自定义的配置项值。
@Resource
private Environment env;
/**
* 配置Thymeleaf视图解析器的静态变量的方法通过该方法向ThymeleafViewResolver对象中设置一系列静态变量
* 这些变量的值一部分来自于应用程序的配置属性通过Environment对象获取另一部分来自于自定义的系统常量通过SystemConstant类获取
* 设置后的静态变量可以在Thymeleaf模板文件中直接使用方便在页面渲染时进行动态数据展示或者根据不同的变量值进行不同的页面逻辑处理如根据不同的域名显示不同的链接等情况
* 此方法通过方法参数注入的方式获取ThymeleafViewResolver对象Spring会自动查找并注入对应的实例供该方法使用。
*
* @param viewResolver 要配置静态变量的ThymeleafViewResolver对象用于设置各种静态变量使其在视图解析和页面渲染过程中能够被Thymeleaf模板访问和使用。
*/
@Resource
private void configureThymeleafStaticVars(ThymeleafViewResolver viewResolver) {
if (viewResolver!= null) {
// 创建一个HashMap用于存储要设置的静态变量键为变量名值为对应的变量值后续会将这些变量设置到ThymeleafViewResolver中以便在Thymeleaf模板中使用。
Map<String, Object> vars = new HashMap<>();
// 从应用程序的配置属性中获取名为"domain.name"的属性值,并将其作为"domainName"变量的值存储到vars映射中
// 该变量可能用于在Thymeleaf模板中生成完整的域名相关的链接、资源引用等情况例如拼接完整的图片地址、外部接口地址等具体根据业务需求确定。
vars.put("domainName", env.getProperty("domain.name"));
// 从应用程序的配置属性中获取名为"admin.domain.name"的属性值,并将其作为"adminDomain"变量的值存储到vars映射中
// 该变量可能用于在Thymeleaf模板中针对管理员相关的功能模块生成特定域名的链接、资源引用等情况例如管理员登录页面的域名、管理员后台接口的域名等具体根据业务中管理员模块的需求确定。
vars.put("adminDomain", env.getProperty("admin.domain.name"));
// 从应用程序的配置属性中获取名为"member.domain.name"的属性值,并将其作为"memberDomain"变量的值存储到vars映射中
// 该变量可能用于在Thymeleaf模板中针对会员相关的功能模块生成特定域名的链接、资源引用等情况例如会员中心页面的域名、会员相关接口的域名等具体根据业务中会员模块的需求确定。
vars.put("memberDomain", env.getProperty("member.domain.name"));
// 从应用程序的配置属性中获取名为"tamguo.domain.name"的属性值,并将其作为"tamguoDomain"变量的值存储到vars映射中
// 该变量可能用于在Thymeleaf模板中针对特定业务域名以tamguo相关的业务场景生成链接、资源引用等情况具体根据业务中该域名对应的功能模块需求确定。
vars.put("tamguoDomain", env.getProperty("tamguo.domain.name"));
// 从自定义的SystemConstant类中获取名为ZHENGTI_PAPER_ID的常量值并将其作为"PAPER_TYPE_ZHENTI"变量的值存储到vars映射中
// 该变量可能用于在Thymeleaf模板中区分不同类型的试卷相关逻辑处理例如根据试卷类型显示不同的样式、进行不同的操作按钮显示等情况具体根据业务中试卷模块的需求确定。
vars.put("PAPER_TYPE_ZHENTI", SystemConstant.ZHENGTI_PAPER_ID);
// 从自定义的SystemConstant类中获取名为MONI_PAPER_ID的常量值并将其作为"PAPER_TYPE_MONI"变量的值存储到vars映射中
// 该变量可能用于在Thymeleaf模板中区分不同类型的试卷相关逻辑处理例如根据试卷类型显示不同的样式、进行不同的操作按钮显示等情况具体根据业务中试卷模块的需求确定。
vars.put("PAPER_TYPE_MONI", SystemConstant.MONI_PAPER_ID);
// 从自定义的SystemConstant类中获取名为YATI_PAPER_ID的常量值并将其作为"PAPER_TYPE_YATI"变量的值存储到vars映射中
// 该变量可能用于在Thymeleaf模板中区分不同类型的试卷相关逻辑处理例如根据试卷类型显示不同的样式、进行不同的操作按钮显示等情况具体根据业务中试卷模块的需求确定。
vars.put("PAPER_TYPE_YATI", SystemConstant.YATI_PAPER_ID);
// 从自定义的SystemConstant类中获取名为MINGXIAO_PAPER_ID的常量值并将其作为"PAPER_TYPE_MINGXIAO"变量的值存储到vars映射中
// 该变量可能用于在Thymeleaf模板中区分不同类型的试卷相关逻辑处理例如根据试卷类型显示不同的样式、进行不同的操作按钮显示等情况具体根据业务中试卷模块的需求确定。
vars.put("PAPER_TYPE_MINGXIAO", SystemConstant.MINGXIAO_PAPER_ID);
// 从自定义的SystemConstant类中获取名为BEIJING_AREA_ID的常量值并将其作为"BEIJING_AREA_ID"变量的值存储到vars映射中
// 该变量可能用于在Thymeleaf模板中涉及北京地区相关的逻辑处理例如根据地区ID进行特定地区的业务展示、数据筛选等情况具体根据业务中地区相关模块的需求确定。
vars.put("BEIJING_AREA_ID", SystemConstant.BEIJING_AREA_ID);
// 将包含所有静态变量的映射设置到ThymeleafViewResolver对象中使得这些变量可以在Thymeleaf模板中被访问和使用实现配置的生效方便页面渲染时的动态数据展示和逻辑处理。
viewResolver.setStaticVariables(vars);
}
}
/**
* 实现EnvironmentAware接口的方法用于设置当前类中的Environment对象Spring容器会在初始化该类时自动调用此方法
* 将应用程序的环境对象传递进来以便在类中可以通过该对象获取各种配置属性信息在这里将传入的environment对象赋值给类中已声明的env对象方便后续使用。
*
* @param environment Spring的应用程序环境对象包含了应用程序的配置属性、系统环境变量等信息通过该对象可以获取到各种自定义的配置项值以及系统相关的环境变量值等内容。
*/
@Override
public void setEnvironment(Environment environment) {
env = environment;
}
}