在前端的JavaScript脚本中,如何高效率的使用数据库中的配置信息

简介: 版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/79010349 在有些场景下,我们需要在前端的JavaScript脚本中,使用数据库中的配置信息,该怎么做呢?第一步、Servlet启动的时候把数据库信息写入到前端的JavaScript文件中首先,在Servlet启动的时候(web.xml的尾部)加入listener。
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/79010349

在有些场景下,我们需要在前端的JavaScript脚本中,使用数据库中的配置信息,该怎么做呢?

第一步、Servlet启动的时候把数据库信息写入到前端的JavaScript文件中

首先,在Servlet启动的时候(web.xml的尾部)加入listener。

<listener>
    <listener-class>com.honzh.common.listener.SpringContextInitListener</listener-class>
</listener>

然后,SpringContextInitListener 内容如下:

public class SpringContextInitListener implements ServletContextListener {

    protected Logger logger = LoggerFactory.getLogger(getClass());

    public void contextInitialized(ServletContextEvent servletContextEvent) {

        ServletContext servletContext = servletContextEvent.getServletContext();

        Variables.servletContextRealPath = servletContext.getRealPath("");
        logger.info("网站realPath{}", Variables.realPath);

        logger.info("数据库配置常量信息初始化");
        Variables.INSTANCE.getStocksConfig();
    }

    public void contextDestroyed(ServletContextEvent servletContextEvent) {

    }
}

要先从ServletContext获得项目的真实路径,比如说c:/run/webapps/。这一点很重要,因为接下来要把数据库的信息写入到该路径下的文件内。

然后,你懂的,关键的地方来了:

public enum Variables {
    INSTANCE;

    protected Logger logger = LoggerFactory.getLogger(getClass());

public ConfigDto getStocksConfig() {
        if (config == null) {
            // 获取数据库配置文件的service
            // 这里用到了spring,你可以按照自己的方式
            // 只要获取到数据库配置信息就好了
            StocksConfigService stocksConfigService = SpringContextHolder.getBean(StocksConfigService.class);
            config = stocksConfigService.getConfig();

            try {
                // 这里请注意路径哦
                // servletContextRealPath 的值就是上文提到的c:/run/webapps/,项目war包运行的所在地
                // 对应的项目路径就是WebContent下
                File configPath = new File(
                        servletContextRealPath + File.separator + "components" + File.separator + "common");
                String fileName = "config.js";
                File configFile = new File(configPath, fileName);

                Files.createParentDirs(configFile);

                logger.info("文件路径创建成功");

                // 写入的时候需要用到json转换,我这里用的是fastjson,你也可以使用jackjson等
                // 最好是把配置文件的json对象复制到一个config变量中,前台使用起来方便。
                Files.write("var CONFIG=" + JSON.toJSONString(config ) + ";\n", configFile, Charsets.UTF_8);
                logger.info("前端配置文件生成完毕");
            } catch (IOException e) {
                logger.error("前端配置文件生成出错");
                logger.error(e.getMessage(), e);
            }
        }

}

第二步,将config.js文件在jsp页面中引用,然后就可以使用该文件的json对象了。注意,引用路径一定要匹配上啊,components的路径在第一步中生成config.js文件时已经注明,它的相对路径就是WebContent(Maven 项目和此类似)。

<script type="text/javascript" src="/components/common/config.js"></script>

然后使用:

$(function() {
    alert(CONFIG.wx_focus_url);
});

这是一篇很简单的文章,旨在介绍方案。但这种技巧真的非常有用,一个月以前,我是不知道还有这种操作的,常常需要通过controller将数据库参数带回到对应的jsp页面中,然后再通过jQuery获取到该值——糟糕的做法。

现在,我把这种做法介绍给你,希望对你有所帮助。


朝闻道夕死可矣!你理解这句话真正的含义吗?

相关文章
|
2月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
341 93
|
5月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
229 1
|
2月前
|
编解码 前端开发 JavaScript
js react antd 实现页面低分变率和高分变率下字体大小自适用,主要是配置antd
在React中结合Ant Design与媒体查询,通过less变量和响应式断点动态调整`@font-size-base`,实现多分辨率下字体自适应,提升跨设备体验。
123 2
|
2月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
399 7
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
532 5
|
8月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
7月前
|
前端开发 数据库
会议室管理系统源码(含数据库脚本)
会议室管理系统源码(含数据库脚本)
127 0
|
8月前
|
数据库
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
|
7月前
|
安全 Linux 网络安全
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
下一篇
oss云网关配置