当前位置: 首页 > 知识库问答 >
问题:

应用程序中的Spring开机日期处理。yaml和属性

仇飞鹏
2023-03-14

我正在创建一个简单的Spring Boot应用程序,从应用程序中加载一个字符串(ISO日期)。yaml文件并尝试将其放入带@Value注释的字段中。如果我使用。yaml文件字符串显然被转换为日期/日历,然后“ToString”转换为不同的格式。如果我使用。属性文件字符串按原样传递。

应用

@EnableAutoConfiguration
@Configuration
@ComponentScan
public class Application {

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(Application.class, args);
        SampleComponent c = ctx.getBean(SampleComponent.class);
        c.bla();
    }
}

应该配置的组件

@Component
public class SampleComponent {

     @Value("${dateString}")
     private String dateString;

     public void bla() {
        System.out.println(dateString);
     }
}

应用亚马尔

dateString: 2015-01-09

=

应用属性

dateString=2015-01-09

=

对我来说,使用属性解决方案很好,但我不明白为什么会发生这种情况?

(注意:当尝试将yaml日期分配给日期字段时,会引发预期的“无法将[java.lang.String]类型的值转换为所需的[java.util.date]类型:未找到匹配的编辑器或转换策略”异常)

共有1个答案

缑泓
2023-03-14

这是因为Spring Boot使用SnakeYAML进行YAML解析,而SnakeYAML的默认行为是从它认为是时间戳的任何字符串中创建一个java.util.Date。如果您有兴趣了解更多信息,请参阅SnakeYAML的解析器类以获取更多详细信息,包括它用于识别时间戳的正则表达式

 类似资料:
  • 我用springboot 1.5.2创建了一个简单的应用程序。我正在传递日期,并且已经提到了应用程序中的日期格式。属性文件如下:spring.jackson.joda date-time format=yyyy-MM-dd 但是,当使用POST(插入)或PUT(更新)的任何客户端调用rest-rest服务时,日期将更改为当天。示例2017-03-21将更改为2017-03-20。

  • 我有一个spring boot应用程序,它有一个应用程序YAML文件(src/main/resources/)。 我想覆盖部署的env部分(k8s)中的整个< code>props列表。在Kubernetes有什么办法吗?

  • 问题内容: 我在我的应用程序中使用Spring安全功能,但是我发现,当会话过期时,所有请求ajax返回页面login.jsp(不重定向,在http响应中,它放置所有html内容)即登录页面我的webapp。我在应用程序中使用了很多ajax请求,目标是返回某些错误代码,例如510,而不是登录页面。 没有invalid-session-url,我试图使invalid-session-url =“”,不

  • 我试图用spring Boot开发一个应用程序。我被困在管理应用程序的异常/错误上。到目前为止,我有服务层和控制器,我已经创建了特定于服务类的异常。对于。(如)异常类是。服务抛出各自的。我被困在如何处理控制器中的异常/错误,如果那里有异常?特别针对api方法调用的格式不正确的输入。我正在读取控制器的输入。我应该把它包括在服务中吗? 所有服务异常都以500个内部应用程序错误的形式返回HTTP代码。我

  • 当我调用服务时,它会给出以下错误:- 我已经基于相同的设计模式构建了REST API,它对我来说工作得很好。我没有得到的东西,为什么它说“没有财产日期找到类型现金流!”?实体中没有日期属性。我尝试删除数据库并重新启动,但没有成功。我错过了什么?