Spring Boot開發注意事項

一、普通類中獲取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());
相關文章
相關標籤/搜索