1. 程式人生 > >SpringBoot--配置fastjson(日期格式轉化)和熱部署

SpringBoot--配置fastjson(日期格式轉化)和熱部署

one.如何配置fastjson

第一種方法:

1.啟動類繼承extends WebMvcConfigurerAdapter

2.覆蓋方法configureMessageConverters

第二種方法注入bean

/**
 * springboot啟動類 使用@SpringBootApplication指定這是一個Spring Boot應用程式
 * 能夠啟動的類,同包下和當前路徑的子包
 * 系統名稱:
 * 概要說明:
 * @author dq(hasee)
 * @since 2017年2月23日
 */
@SpringBootApplication
public class ApplicationFastJson extends WebMvcConfigurerAdapter{
	
	@Override
	public void configureMessageConverters(
			List<HttpMessageConverter<?>> converters) {
		super.configureMessageConverters(converters);
		/**
		 * 1.需要定義一個convert轉換訊息的物件
		 * 2.建立配置資訊,加入配置資訊:比如是否需要格式化返回的json
		 * 3.converter中新增配置資訊
		 * 4.convert新增到converters當中
		 */
		FastJsonHttpMessageConverter fastJsonHttpMessageConverter = 
				new FastJsonHttpMessageConverter();
		FastJsonConfig fastJsonConfig = new FastJsonConfig();
		fastJsonConfig.setSerializerFeatures(
				SerializerFeature.PrettyFormat
		);
		fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
		converters.add(fastJsonHttpMessageConverter);
	}
	
/*	@Bean
	public HttpMessageConverters fastJsonHttpMessageConverters() {
		FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
		FastJsonConfig fastJsonConfig = new FastJsonConfig();
		fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
		fastConverter.setFastJsonConfig(fastJsonConfig);
		HttpMessageConverter<?> converter = fastConverter;
		return new HttpMessageConverters(converter);
	}*/
	
	public static void main(String[] args) {
		/*
		 * 在main方法中啟動程式
		 */
		SpringApplication.run(ApplicationFastJson.class, args);
		
	}
}


使用fastjson可以使用一些方便的功能

日期格式轉化為

@JSONField(format="yyyy-MM-dd HH:mm:ss")
private Date date;
不序列化頁面不顯示屬性
@JSONField(serialize=false)
private String notSerilized;

two:熱部署

	<!-- SpringLoader plugin -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin </artifactId>
				<dependencies>
					<!--springloaded hot deploy -->
					<dependency>
						<groupId>org.springframework</groupId>
						<artifactId>springloaded</artifactId>
						<version>1.2.4.RELEASE</version>
					</dependency>
				</dependencies>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
						<configuration>
							<classifier>exec</classifier>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
兩種啟動方式

1.run maven build goals 鍵入 spring-boot:run

問題 關閉程序但是不會真正關閉,需要工作管理員關閉

2.如果使用的run as – java application的話,那麼還需要做一些處理。
把spring-loader-1.2.4.RELEASE.jar下載下來,放到專案的lib目錄中,然後把IDEA的run引數裡VM引數設定為:
-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar -noverify
然後啟動就可以了,這樣在run as的時候,也能進行熱部署

帶改變方法熱部署

使用devTool:原理,使用了兩個classLoader,一個載入不會改變的類,另一個載入會改變的類(restart classloader),所以載入的類少,實現較快的重啟時間

修改類 儲存 重啟

修改配置檔案 儲存 重啟

修改頁面 儲存 重啟 頁面會重新整理

注意 project  build automatically必須勾選上