一、普通类中获取Spring容器中的Bean
如下方式是无效的:前端
AppConfig appConfig = ContextLoader.getCurrentWebApplicationContext().getBean(AppConfig.class);
可以使用下面的工具类来获取:java
@Component public class SpringUtils implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if (SpringUtils.applicationContext == null) { SpringUtils.applicationContext = applicationContext; } } public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 经过name获取 Bean. */ public static Object getBean(String name) { return getApplicationContext().getBean(name); } /** * 经过class获取Bean. */ public static <T> T getBean(Class<T> clazz) { return getApplicationContext().getBean(clazz); } /** * 经过name,以及Clazz返回指定的Bean */ public static <T> T getBean(String name, Class<T> clazz) { return getApplicationContext().getBean(name, clazz); } }
示例:app
AppConfig appConfig = SpringUtils.getBean(AppConfig.class);
二、Spring Boot默认不支持带.jsp后缀的URL
貌似.jspx也不能够。jsp
三、服务端java的long类型序列化到前端后,可能会损失精度
有两个解决办法:ide
(一)序列化时把long转换位String类型工具
(二)long类型的数值控制在15位之内spa
四、前端提交的时间戳数据,服务端用@RequestBody Map接收后,不能直接转换为Long类型
直接转换为Long类型可能会报错code
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
正确的作法是:blog
Number birthDateTime = (Number) dataMap.get("birthDate"); Date birthDate = new Date(birthDateTime.longValue());