最近项目中发现一个好玩的事情:本地调试时,返回的date是日期格式yyyy-MM-dd HH:mm:ss,但发布到服务器后就变为Long型的时间戳了
原因很简单,服务器启动时的脚本加下如下的spring配置,而本地没有
java -Djava.security.egd=file:/dev/urandom -Dspring.jackson.serialization.write-dates-as-timestamps=true -jar -Xms2048m -Xmx2048m xxx.jar
就是因为加了这个spring参数,才会使date类型都转变为Long型,除了代码中加如下注解的Date型
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public Date getCreateDate() {
return createDate;
}
当然,本地如果也想返回Long型时间戳,可以在yml中加上如下配置
spring.jackson.serialization.write-dates-as-timestamps: true
但在调查过程中把Spring的一些地方给了解了一遍,总结如下几点
1. 有关注解@RestController
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller @ResponseBody public @interface RestController { /** * The value may indicate a suggestion for a logical component name, * to be turned into a Spring bean in case of an autodetected component. * @return the suggested component name, if any * @since 4.0.1 */ String value() default ""; }
回顾下这些常用的注解
1)元注解
@Document:是否编入Javadoc
@Target:使用范围(TYPE、FIELD、METHOD、PARAMETER、CONSTRUCTOR、PACKAGE等)
@Retention:保留范围(SOURCE、CLASS、RUNTIME)
@Inherited:子类继承父类的注解
2)常用注解
1. Autowired和Qualifier:后者可以根据名称寻找依赖(常用于对同class的多个bean)
2. 别称:类似Controller、Service实质都是Component
3. RestController = Controller + ResponseBody
。。。
。。。待续
参考:https://www.jianshu.com/p/e9329c8a59c2
2.
@RestController返回的date类型为什么是Long型
原文:https://www.cnblogs.com/roostinghawk/p/12080705.html