package cc.mrbird.febs; import cc.mrbird.febs.common.contants.AppContants; import cc.mrbird.febs.dapp.dto.SystemConstants; import cc.mrbird.febs.dapp.entity.DataDictionaryCustom; import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper; import cn.hutool.core.util.StrUtil; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.annotation.PostConstruct; import java.lang.reflect.Field; /** * @author MrBird */ @EnableAsync @EnableScheduling @SpringBootApplication @EnableTransactionManagement @MapperScan("cc.mrbird.febs.*.mapper") public class FebsShiroApplication { @Autowired private DataDictionaryCustomMapper dataDictionaryCustomMapper; @Autowired private SystemConstants systemConstants; public static void main(String[] args) { new SpringApplicationBuilder(FebsShiroApplication.class) .web(WebApplicationType.SERVLET) .run(args); } @PostConstruct public void systemConstantsInit() { DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( DataDictionaryEnum.FEE_ADDRESS_KEY.getType(), DataDictionaryEnum.FEE_ADDRESS_KEY.getCode()); String key = dataDictionaryCustom.getCode(); key = StrUtil.toCamelCase(key); String value = dataDictionaryCustom.getValue(); try { Field field = systemConstants.getClass().getDeclaredField(key); field.set(systemConstants, value); AppContants.FEE_ADDRESS_KEY.put("feeAddressKey",systemConstants.getFeeAddressKey()); dataDictionaryCustom.setValue("isReady"); dataDictionaryCustomMapper.updateById(dataDictionaryCustom); } catch (Exception e) { e.printStackTrace(); } } }