Ich baue eine App mit spring-boot
. Um sticky-Sitzung im Zusammenhang Probleme zu vermeiden, habe ich an Ort und Stelle einen redis Session-Speicher durch diese Zeilen in pom.xml
Zugabe:Verhindern Verbindung zu Redis-Server in Komponententests
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>1.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
und diese Zeilen in application.properties:
spring.redis.host=localhost
spring.redis.password=secret
spring.redis.port=6379
Es funktionierte wie Ein Zauber. Ich war überrascht, dass es funktioniert, auch wenn ich die Anmerkung @EnableRedisHttpSession
nicht verwendet habe. Am Anfang fand ich es schön.
Problem: Ich habe eine Spring-Konfiguration für die reale Anwendung und auch eine Spring-Konfiguration für Komponententests. Die Redis-Verbindung ist in der Komponententestumgebung nutzlos und führt dazu, dass der Test fehlschlägt, wenn ich keinen Redis-Server in der Testumgebung installiere.
Ich könnte schließlich eine Mock Redis als Maven-Abhängigkeit installieren, aber es wäre sauberer, wenn ich einen Weg finden würde, diese nutzlose Verbindung zu deaktivieren.
Irgendeine Idee?
Frühling Stiefel ist 'SessionAutoConfiguration' tritt in Sie es in Ihrer Anwendung ausschließen. ('@ SpringBootApplication' oder Eigenschaften), siehe [hier] (https://github.com/pivotalsoftware/pivotal-cla/blob/b35645d709fc4bae31b353eaddbd15374cf2570f/src/main/java/io/pivotal/cla/GithubClaApplication.java) – mp911de
@ mp911de Das Hinzufügen funktioniert nur, wenn ich es sowohl auf das Anwendungsconf als auch auf das Testconf anwende. Wenn ich "@ EnableRedisHttpSession" manuell nur für das Anwendungskonf hinzufüge, wird es auch von der Testkonfiguration erkannt. Haben Sie eine Idee, wie ich verhindern kann, dass der Test conf "@ EnableRedisHttpSession" auf dem App-Conf erkennt? –
Es gibt keine Wiederherstellung von einer '@Enable ...' Annotation. Aktiviert ist aktiviert. Ich denke, Profile könnten dir hier helfen. – mp911de