我有课
@ApplicationScoped
public class Service{
private Map<String, Integer> something ;
private final Logger LOGGER = LoggerFactory.getLogger(Service.class);
@PostConstruct
public void initialize(){
something = new HashMap<>();
}
public void increase(String userName){
something.put(userName, something.getOrDefault(userName, 0) + 1);
}
public Map<String, Integer> getSomething(){
return this.something;
}
public Integer getSomethingForUser(String userName){
return something.getOrDefault(userName, 0);
}
}
Run Code Online (Sandbox Code Playgroud)
我想成为全局一个实例。
问题是,当我在两个不同的地方注入这个服务时,我有两个不同的服务实例 - 这导致总是返回 counter 0。.toString()返回如下:
package.services.Service@492e4f4b
package.services.Service@4bc86c4d
Run Code Online (Sandbox Code Playgroud)
我创建了这个服务来测试我的 HK2-Jersey 实现,这显然不能正常工作。
网页.xml:
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>io.swagger.jaxrs.listing,mypackage.rest</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>
io.swagger.jaxrs.listing.ApiListingResource,
io.swagger.jaxrs.listing.SwaggerSerializers
</param-value>
</init-param>
<init-param> …Run Code Online (Sandbox Code Playgroud)