1-配置前-默认存储位置
默认本地存储配置位置如下:

如果在项目启动前判断当前程序所在的根磁盘(如G盘)下有/WEB-INF/ureportfiles目录么(即判断是否存在G:/WEB-INF/ureportfiles目录),
1)若有该目录,则设计的模板文件存放在该磁盘下,如下所示:

测试保存设计文件:




2)若不存在上述配置的目录,则真正的目录为“web根目录”+上述配置的/WEB-INF/ureportfiles目录,web根目录如下:
WebApplicationContext context = (WebApplicationContext)applicationContext;
ServletContext servletContext = context.getServletContext();
String basePath = servletContext.getRealPath("/");
web根目录示例值:C:\Users\Administrator\AppData\Local\Temp\tomcat-docbase.8085.16508293271585982716\
2-默认存储位置的代码跟踪









3-1-覆盖默认的配置目录-方式1
添加自定义用于配置ureport2的spring配置文件,将来在该配置文件中对原默认的存储路径进行覆盖
新增配置文件ureport2-spring.xml


https://www.w3cschool.cn/ureport2/ureport2-2gis3pt7.html


项目中导入该配置文件ureport2-spring.xml

重新启动项目,验证使用使用自定义配置文件后,ureport2仍然能够正常使用,如下:
http://localhost:8085/ureport/designer

添加自定义路径配置覆盖ureport2默认的配置:
跟踪默认的ureport2对存储路径的配置,如下:


补充:ignoreUnresolvablePlaceholders属性作用
PropertyPlaceholderConfigurer的ignoreUnresolvablePlaceholders属性在Spring框架中用于配置属性占位符解析的行为。当设置为true时,如果在属性文件中找不到某个占位符(如${property.name}),Spring将不会抛出异常,而是将该占位符保留为原始字符串,示例如下:
比如,在你的application.properties文件中有一个占位符:
database.url=jdbc:mysql://${DB_HOST}:${DB_PORT}/mydb
如果ignoreUnresolvablePlaceholders设置为true,而DB_HOST或DB_PORT未定义,
Spring将不会抛出异常,而是将database.url解析为:
jdbc:mysql://${DB_HOST}:${DB_PORT}/mydb


添加自定义配置
在自定义的ureport配置文件中添加引用自定义配置文件的配置

添加自定义配置文件ureport2.properties



加载上述配置文件

测试上述配置是否能正常覆盖默认的存储路径
打断点:

重新启动项目:

测试当不覆盖默认存储路径时,使用的是默认配置的存储路径,如下:
重新启动项目:



3-2-覆盖默认的配置目录-方式2(推荐)
默认配置代码跟踪




添加配置类覆盖默认的配置,如下:

package com.example.demo.config;
import com.bstek.ureport.UReportPropertyPlaceholderConfigurer;
import org.springframework.stereotype.Component;
import java.util.Properties;
@Component
public class UReportPropertyPlaceholderConfigurerPlus extends UReportPropertyPlaceholderConfigurer {
public UReportPropertyPlaceholderConfigurerPlus() {
Properties properties = new Properties();
//报表存储路径
properties.setProperty("ureport.fileStoreDir", "G:/UReport");
this.setProperties(properties);
}
}
测试上述配置是否能正常覆盖默认的存储路径
打断点:

重新启动项目:





8903

被折叠的 条评论
为什么被折叠?



