gpt4 book ai didi

java - Spring正确调用属性文件

转载 作者:行者123 更新时间:2023-11-30 09:49:53 26 4
gpt4 key购买 nike

我有一个 spring mvc 应用程序,我正在使用扩展 AbstractPdfView 的类渲染一些 pdf。我有几个 pdf,我认为创建一个辅助类来放置一些常用功能是有意义的。然后我决定将任何输出文本添加到我的 messages_en.properties 文件中。我如何从我的助手类访问这个文件?现在我正在手动创建我的助手类的一个实例。看起来像这样:

   public class PdfEarningsRecordView extends AbstractPdfView {

@Override
protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter writer,
HttpServletRequest request, HttpServletResponse response) throws Exception {

HelperClass helper = new HelpderClass();
......

我尝试让 Helper 扩展 ApplicationContextAware,但总是返回 null。我也尝试了以下相同的结果:

@Autowire
private ApplicationContext context;
header = context.getMessage("myHeader", null, Locale.getDefault());

我觉得我在手动创建 HelperClass 时也没有正确使用 Spring。任何提示将不胜感激。

谢谢

最佳答案

AbstractPdfViewApplicationObjectSupport 的子类,它有一个有用的 getMessageSourceAccessor() 方法,它返回一个 MessageSourceAccessor,这是从框架获取消息的最简单方法。只需将其传递给您的助手类:

public class PdfEarningsRecordView extends AbstractPdfView {

@Override
protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter writer, HttpServletRequest request, HttpServletResponse response) throws Exception {

HelperClass helper = new HelperClass(getMessageSourceAccessor());

然后助手可以相应地使用它。

请注意,为了使其正常工作,必须正确初始化 PdfEarningsRecordView 对象。 Spring 通常会通过在启动期间调用其 ApplicationObjectSupport.setApplicationContext() 来为您完成此操作,但是如果您自己实例化一个 PdfEarningsRecordView,无论出于何种原因,您都必须自己调用该方法。

关于java - Spring正确调用属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5502591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com