Я хотел бы добавить разные экземпляры одного и того же объекта (с помощью Session или Appplication Scope).
Я хотел бы иметь два разных экземпляра счетчика машины (один для красных и один для зеленых).
Вместо этого он создает две ссылки на один и тот же объект.
Как я могу решить проблему? (сохранение счетчика с Application Scope в служебном остатке с Scope Scope).
RestSession
@Path("/api/session")
@SessionScoped
public class RestSession implements Serializable {
@Inject @Contatori
private IContatore countRedCar;
@Inject @Contatori
private IContatore countGreenCar;
@Produces("application/json")
@GET
@Path("/red")
public ResultDTO countRed() {
countRedCar.conta();
return new ResultDTO(countRedCar.getCount(),countGreenCar.getCount());
}
@Produces("application/json")
@GET
@Path("/green")
public ResultDTO countGreen() {
countGreenCar.conta();
return new ResultDTO(countRedCar.getCount(),countGreenCar.getCount());
}
}
Конта
package it.paolo.javaee.util;
import javax.enterprise.context.ApplicationScoped;
@ApplicationScoped
@Contatori
public class Conta implements IContatore{
private int count;
public Conta() {
count=0;
}
public int conta() {
return count+=1;
}
public void setCount(int i) {
count=i;
}
public int getCount() {
return count;
}
}
IContatore
package it.paolo.javaee.util;
import java.io.Serializable;
public interface IContatore extends Serializable {
public int conta();
public void setCount(int i);
public int getCount();
}
@ interface Contatori3
package it.paolo.javaee.util;
import javax.inject.Qualifier;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.METHOD,ElementType.TYPE})
public @interface Contatori3 {
}