NullPointerException für Springboot @Autowired-Komponente im Interceptor [Duplikat]

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: NullPointerException für Springboot @Autowired-Komponente im Interceptor [Duplikat]

by Guest » 20 Jan 2025, 17:45

Ich habe eine Komponente, deren Hauptaufgabe darin besteht, eine Jedis-Instanz zurückzugeben, und sie sieht wie folgt aus:

Code: Select all

@Component
public class JedisConfig {

private Jedis jedis;

public JedisConfig() {
jedis = new Jedis("localhost", 6379);
}

public Jedis getJedis() {return jedis;}
}
Ich verwende dann die Jedis-Instanz, um einige Dinge im PreHandler meines Interceptors zu erledigen:

Code: Select all

public class AuthInterceptor implements HandlerInterceptor {

@Autowired
private JedisConfig jc;

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Jedis jedis = jc.getJedis();

// do some other stuff with jedis below
}
}

Aber ich erhalte eine NullPointerException, wenn ich jc.getJedis() aufrufe und verstehe nicht, warum das passiert.
Auf a Verwandter Hinweis: Ich habe in einem Unit-Test so ziemlich genau das Gleiche gemacht und es läuft einwandfrei:

Code: Select all

@Autowired
private JedisConfig jc;

@Test
public void testJedis(){
Jedis jedis = jc.getJedis();

jedis.set("user", "role");
assertThat(jedis.get("user"),is("role"));
}
So habe ich den Interceptor zur Registrierung hinzugefügt:

Code: Select all

@Configuration
public class WebConfig implements WebMvcConfigurer {

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AuthInterceptor())
.addPathPatterns("/user/roleChange");
}
}
Wenn jemand weiß, wie man das Problem beheben kann, lassen Sie es mich bitte wissen. Vielen Dank!

Top