|
|
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;
|
|
|
}
|
|
|
|
|
|
} |