## 说明
字典分两级,字典父类CodeClass和字典子类CodeItem。
在项目启动和字典被修改的时候,会向阿里云oss写入字典的json文件。
## 字典常量规范
使用java静态类,避免出现魔法变量。
参加`org.coderfun.boot.core.BootDict`
## 字典读取
* java代码中使用
org.coderfun.common.dict.DictReader
* jsp页面中使用
1.<%@ taglib prefix="code" uri="jstl.coderfun.common" %>
2. ${code:getName('fieldmeta','module_code')}
## 数据字典aop
配置文件,`classpath:application.xml`
```
<!-- 数据字典AOP,数据字典序列化JSON文件供前端访问 -->
<bean class="org.coderfun.boot.aop.DictReaderAspect"></bean>
```
```
@Aspect
public class DictReaderAspect {
private static final Logger logger = LoggerFactory.getLogger(DictReaderAspect.class);
@Autowired
DictReader dictReader;
/**
* 字典改动,重新load
*
* @param joinPoint
*/
@After("execution(* org.coderfun.common.dict.dao.*.*(..))")
public void rebuildWebFrontDictReader(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().getName();
if (methodName.startsWith("save") || methodName.startsWith("update") || methodName.startsWith("delete")) {
logger.info("重新从数据库加载前端字典,joinPoint:{}", joinPoint.getSignature().getName());
// 重新从数据库加载前端字典
try {
dictReader.buildWebFrontDictReader();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```