【发布时间】:2017-08-23 03:15:57
【问题描述】:
我们有一个 Web 服务,其中一个参数称为源,并且该源始终根据数据库中的代码进行验证。
对于我们的每一项服务,我都必须验证此代码。这段代码不会改变,所以我想保持不变,但我仍然需要验证它以防止客户端发送错误的代码。
基本上我想要的是这样的:
@Service
public class Service {
@Autowired
private LogBS logBS;
// I know this cannot be used in a static context.
public static final Long CODE = this.logBS.retrieveLogWebServiceCode("webServiceName");
public void validateOriginCode(final Long origin) {
if (!origin.equals(CODE)) {
throw new ServiceException("Wrong origin code!");
}
}
}
我知道使用 Spring 缓存可以做类似的事情,但是可以用常量来做吗?
【问题讨论】:
-
为什么不创建一个不可变的类来保存常量并在
Service类的@PostConstruct中初始化它? -
@yaswanth 你能发布一个答案吗?
标签: spring web-services static singleton