98 lines
2.8 KiB
Java
98 lines
2.8 KiB
Java
package tech.riemann.ims;
|
|
|
|
import java.io.IOException;
|
|
import java.time.LocalTime;
|
|
import java.time.ZoneId;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.temporal.TemporalAccessor;
|
|
import java.util.Locale;
|
|
|
|
import org.mybatis.spring.annotation.MapperScan;
|
|
import org.nutz.castor.Castors;
|
|
import org.nutz.json.Json;
|
|
import org.nutz.json.JsonFormat;
|
|
import org.nutz.json.JsonRender;
|
|
import org.nutz.json.JsonTypeHandler;
|
|
import org.nutz.lang.Mirror;
|
|
import org.springframework.boot.SpringApplication;
|
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
import org.springframework.scheduling.annotation.EnableAsync;
|
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
|
|
|
@SpringBootApplication
|
|
@MapperScan("tech.riemann.ims.mapper")
|
|
@EnableAsync
|
|
@EnableScheduling
|
|
public class Application {
|
|
|
|
public static void main(String[] args) {
|
|
SpringApplication.run(Application.class, args);
|
|
Json.addTypeHandler(new JsonTypeHandler() {
|
|
/**
|
|
* @param mirror
|
|
* @param obj
|
|
* @return
|
|
* @see org.nutz.json.JsonTypeHandler#supportFromJson(org.nutz.lang.Mirror,
|
|
* java.lang.Object)
|
|
*/
|
|
@Override
|
|
public boolean supportFromJson(Mirror<?> mirror, Object obj) {
|
|
return mirror.getType().equals(LocalTime.class);
|
|
}
|
|
|
|
/**
|
|
* @param mirror
|
|
* @param obj
|
|
* @param jf
|
|
* @return
|
|
* @see org.nutz.json.JsonTypeHandler#supportToJson(org.nutz.lang.Mirror,
|
|
* java.lang.Object, org.nutz.json.JsonFormat)
|
|
*/
|
|
@Override
|
|
public boolean supportToJson(Mirror<?> mirror, Object obj, JsonFormat jf) {
|
|
return mirror.getType().equals(LocalTime.class);
|
|
}
|
|
|
|
/**
|
|
* @param mirror
|
|
* @param currentObj
|
|
* @param r
|
|
* @param jf
|
|
* @throws IOException
|
|
* @see org.nutz.json.JsonTypeHandler#toJson(org.nutz.lang.Mirror,
|
|
* java.lang.Object, org.nutz.json.JsonRender,
|
|
* org.nutz.json.JsonFormat)
|
|
*/
|
|
@Override
|
|
public void toJson(Mirror<?> mirror, Object currentObj, JsonRender r, JsonFormat jf) throws IOException {
|
|
String df = jf.getDateFormatRaw();
|
|
if (mirror.getType().equals(LocalTime.class)) {
|
|
df = "HH:mm:ss";
|
|
}
|
|
Locale locale = null;
|
|
String tmp = jf.getLocale();
|
|
if (tmp != null) {
|
|
locale = Locale.forLanguageTag(tmp);
|
|
} else {
|
|
locale = Locale.getDefault();
|
|
}
|
|
r.string2Json(DateTimeFormatter.ofPattern(df, locale).withZone(ZoneId.systemDefault()).format((TemporalAccessor) currentObj));
|
|
}
|
|
|
|
/**
|
|
* @param obj
|
|
* @param mirror
|
|
* @return
|
|
* @throws Exception
|
|
* @see org.nutz.json.JsonTypeHandler#fromJson(java.lang.Object,
|
|
* org.nutz.lang.Mirror)
|
|
*/
|
|
@Override
|
|
public Object fromJson(Object obj, Mirror<?> mirror) throws Exception {
|
|
return Castors.me().castTo(obj, mirror.getType());
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|