注入的 Bean 在我的 quarkus 扩展中为空
Injected Bean is null in my quarkus extension
我有一个非常简单的 quarkus 扩展,它定义了一个 ContainerRequestFilter 来过滤身份验证并将数据添加到自定义 AuthenticationContext。
这是我的代码:
runtime/AuthenticationContext.java
public interface AuthenticationContext {
User getCurrentUser();
}
runtime/AuthenticationContextImpl.java
@RequestScoped
public class AuthenticationContextImpl implements AuthenticationContext {
private User user;
@Override
public User getCurrentUser() {
return user;
}
public void setCurrentUser(User user) {
this.user = user;
}
}
runtime/MyFilter.java
@ApplicationScoped
public class MyFilter implements ContainerRequestFilter {
@Inject
AuthenticationContextImpl authCtx;
@Override
public void filter(ContainerRequestContext requestContext){
// doing some stuff like retrieving the user from the request Context
// ...
authCtx.setCurrentUser(retrievedUser)
}
}
deployment/MyProcessor.java
:
class MyProcessor {
//... Some stuff
@BuildStep
AdditionalBeanBuildItem createContext() {
return new AdditionalBeanBuildItem(AuthenticationContextImpl.class);
}
}
我在 authCtx.setCurrentUser(retrievedUser)
调用中出现空指针异常(从未注入 authCtx)
我在这里错过了什么?
谢谢
索引扩展的 runtime
模块修复了这个问题。
如
中所述,有多种方法可以做到这一点
我有一个非常简单的 quarkus 扩展,它定义了一个 ContainerRequestFilter 来过滤身份验证并将数据添加到自定义 AuthenticationContext。
这是我的代码:
runtime/AuthenticationContext.java
public interface AuthenticationContext {
User getCurrentUser();
}
runtime/AuthenticationContextImpl.java
@RequestScoped
public class AuthenticationContextImpl implements AuthenticationContext {
private User user;
@Override
public User getCurrentUser() {
return user;
}
public void setCurrentUser(User user) {
this.user = user;
}
}
runtime/MyFilter.java
@ApplicationScoped
public class MyFilter implements ContainerRequestFilter {
@Inject
AuthenticationContextImpl authCtx;
@Override
public void filter(ContainerRequestContext requestContext){
// doing some stuff like retrieving the user from the request Context
// ...
authCtx.setCurrentUser(retrievedUser)
}
}
deployment/MyProcessor.java
:
class MyProcessor {
//... Some stuff
@BuildStep
AdditionalBeanBuildItem createContext() {
return new AdditionalBeanBuildItem(AuthenticationContextImpl.class);
}
}
我在 authCtx.setCurrentUser(retrievedUser)
调用中出现空指针异常(从未注入 authCtx)
我在这里错过了什么?
谢谢
索引扩展的 runtime
模块修复了这个问题。
如