그래서 현재 스프링 장치 테스트 응용 프로그램이 있습니다. 그리고 외부 인증 소스에서 세션 쿠키를 가져와야합니다. 문제는 이것이 무엇인지,이 인증 프로세스는 상당히 비싸고 시간이 많이 걸리고 어떤 하위 클래스에 의해서도 한 번만 인증을 받고 이후의 하위 클래스가 생성 된 구조를 만들려고합니다.이 세션 쿠키는 인증을 거치지 않고 재사용됩니다. 다시 처리하십시오.서브 클래스 중 공유 변수의 더 나은 구현은 무엇입니까
지금 내 문제는 정적 쿠키가 다른 하위 클래스가 생성 될 때마다 null입니다. 그리고 정적 변수를 전역 변수로 사용하는 것은 좋지 않은 생각이지만, 런타임 중에 스프링 프레임 워크 설정 때문에 다른 방법을 생각할 수 없으며 다른 모든 클래스가 그걸 써.
또 다른 정보. 변수는 사용 중이지만 런타임 중에 변경할 수 있습니다. 한 명의 사용자가 로그인하여 사용하는 것은 아닙니다. 그러나 Sub1처럼 로그인을 호출하면 쿠키가 생깁니다. 그런 다음 SubX가 들어 와서 다른 인증 정보를 사용할 때까지 여러 번 테스트를 통해 해당 로그인 정보가 사용되므로 다른 정보로 로그인해야합니다. 그리고 반복합니다.
public class Parent implements InitializingBean {
protected static String BASE_URL;
public static Cookie cookie;
... All default InitializingBean methods ...
afterPropertiesSet() {
cookie = // login process returns a cookie
}
}
public class Sub1 extends Parent {
@resource public String baseURL;
@PostConstruct
public void init() {
// set parents with my baseURL;
BASE_URL = baseURL;
}
public void doSomething() {
// Do something with cookie, because it should have been set by parent class
}
}
public class Sub2 extends Parent {
@resource public String baseURL;
@PostConstruct
public void init() {
// set parents with my baseURL;
BASE_URL = baseURL;
}
public void doSomethingElse() {
// Do something with cookie, because it should have been set by parent class
}
}
Sub 1과 Sub2는 쿠키에만 액세스 할 수 있도록 Parent를 확장합니까? 아니면 다른 기능을 도출합니까? – jeff
그것은 다른 많은 기능도 상속받습니다. 단지 Sub1이나 Sub2가 아니지만, Sub1과 같이 100+를 좋아하고, 사촌은 테스트 컬렉션입니다. – Churk
쿠키 이외의 Sub1, Sub2 등의 다른 상태가 유지됩니까? – jeff