GenerateConfiguration.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.hccake.ballcat.codegen.config;
  2. import com.baomidou.mybatisplus.annotation.DbType;
  3. import com.hccake.ballcat.codegen.engine.TemplateEngine;
  4. import com.hccake.ballcat.codegen.engine.TemplateEngineDelegator;
  5. import com.hccake.ballcat.codegen.engine.TemplateEngineTypeEnum;
  6. import com.hccake.ballcat.codegen.database.TableInfoMapper;
  7. import com.hccake.ballcat.codegen.service.TableInfoQuery;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.context.annotation.Configuration;
  10. import org.springframework.context.annotation.Primary;
  11. import java.util.EnumMap;
  12. import java.util.List;
  13. import java.util.Map;
  14. /**
  15. * 代码生成的配置类
  16. *
  17. * @author hccake
  18. */
  19. @Configuration(proxyBeanMethods = false)
  20. public class GenerateConfiguration {
  21. /**
  22. * 模板引擎委托器
  23. * @return TemplateEngineDelegator
  24. */
  25. @Bean
  26. public TemplateEngineDelegator templateEngineDelegator(List<TemplateEngine> templateEngineList) {
  27. Map<TemplateEngineTypeEnum, TemplateEngine> templateEngineMap = new EnumMap<>(TemplateEngineTypeEnum.class);
  28. for (TemplateEngine templateEngine : templateEngineList) {
  29. templateEngineMap.put(templateEngine.type(), templateEngine);
  30. }
  31. return new TemplateEngineDelegator(templateEngineMap);
  32. }
  33. /**
  34. * TableInfoQuery 查询器
  35. * @return TableInfoQuery
  36. */
  37. @Bean
  38. @Primary
  39. public TableInfoQuery tableInfoQuery(List<TableInfoMapper> tableInfoMapperList) {
  40. Map<DbType, TableInfoMapper> tableInfoMapperEnumMap = new EnumMap<>(DbType.class);
  41. for (TableInfoMapper tableInfoMapper : tableInfoMapperList) {
  42. tableInfoMapperEnumMap.put(tableInfoMapper.dbType(), tableInfoMapper);
  43. }
  44. return new TableInfoQuery(tableInfoMapperEnumMap);
  45. }
  46. }