一、@Response注解的使用避开静态字段
我发现了@Resource不能给静态字段使用,只能用@Autowired。
@Resource
private AnalysisWarningService analysisWarningService; // 使用 @Resource 注解
@Autowired
private static AnalysisWarningDao analysisWarningDao; // 静态字段不能使用 @Resource 注解
针对静态字段的加载情况,可以在 Controller 类中添加静态初始化块,并利用日志框架记录相关信息。示例如下:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class Controller {
private static final Logger logger = LoggerFactory.getLogger(BigScreenController.class);
@Resource
private AnalysisWarningService analysisWarningService;
@Autowired
private static AnalysisWarningDao analysisWarningDao;
static {
logger.info("Initializing Controller static fields...");
// 在这里可以添加额外的静态字段初始化逻辑或者日志输出
}
}
在上面的示例中:
logger 使用了 SLF4J 日志框架,用于记录类的静态字段初始化过程。
static { … } 块中可以添加其他静态字段的初始化逻辑,或者仅仅用来记录日志。
日志输出会在应用启动时输出到日志文件中,方便跟踪静态字段的加载过程和任何潜在的问题。
总结:
通过上述优化描述和日志记录方式,你可以更清晰地表达为什么选择了 @Autowired 而不是 @Resource,并且增强了对静态字段加载过程的跟踪和调试能力。这样做有助于更好地理解代码的加载和初始化顺序,以及可能存在的潜在问题。
二、响应体的json串内顺序决定方式-类对象定义的顺序
这个顺序决定响应体json串内部的的顺序,而不是构造器里面的顺序
{
"statusCode": 200,
"message": "操作成功",
"data": [
{
"a": 2,
"b": "故障"
},
{
"a": 5,
"b": "异常"
},
{
"a": 6,
"b": "异常"
},
{
"a": 3,
"b": "故障"
},
{
"a": 1,
"b": "低效"
}
]
}