繁体   English   中英

Java REST Web服务构造函数

[英]Java REST web service constructor

在Java Web Service类中使用构造函数有什么意义吗? (到目前为止我发现的文章似乎没有达成共识。)

我使用Jersey来实现一个REST Web服务 ,该服务需要有一个非静态公共对象(一个字符串处理实用程序类),可用于服务的各种(非静态)方法。

初始化此公共对象通常会在类的构造函数中发生,如果它不是Web服务的话。 但是现在怎么样呢?

如果不能使用构造函数,我是否应该在每个相关方法中放置一个同步块来检查公共对象是否可用,如果没有,则初始化它? 还是有更好的方法?

每个Web服务类确实有一个构造函数。 如果您不包含一个,那么Java会自动为您添加默认的no-arg构造函数。 您可以:

  1. 在声明它的类变量时初始化实用程序实例
  2. 手动添加默认构造函数并在其中初始化实用程序实例
  3. 或者,如果您使用JEE6,则可以将实用程序实例注入Web服务

尝试@PostConstruct注释。 它可能对你有帮助。

这只是一个意见,但如果你想100%坚持REST,你的网络服务应该是无国籍的。 在Web服务方法调用中初始化公共对象意味着状态,因此这不是最好的主意。*

*这是有争议的,可以在评论中看到。 但是,任何同步和共享对象初始化(如果不是必需的IMO)应该是REST应用程序中的禁忌。

Contructor当然是一个解决方案,更好的方法是使用依赖注入并在创建时将您需要的对象注入Webservice实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM