[英]spring-boot @autowired interface (CrudRepository) in my Service class => Null pointer exception
[英]Spring @Inject service class return null pointer exception
我有一個Converter
類,在其中使用了以下內容,以便可以使用@Inject
訪問我的服務類。
@Named("myMB")
@ViewAccessScoped
但是當我嘗試使用
myservice.getCategories();
我在這一行收到null pointer exception
。 這可能是什么原因? 我在ManagedBean
使用了相同的服務方法來填充selectOneMenu
,但是在Converter類中使用時,卻給了我異常。
轉換器類
@FacesConverter("categoryConverter")
@Named("myMB")
@ViewAccessScoped
public class CategoryConverter implements Converter {
@Inject
CategoryService myservice;
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component,
String value) {
System.out.println("reached in converter "+value);
try {
List<Category> cat = myservice.getCategories();
for (Category cat : category) {
if (cat.getCategoryCode() == value) {
return cat;
}
}
}
} catch (Exception e) {
System.out.println("exception from getAsObject ");
e.printStackTrace();
}
return null;
}
如果將其用作@FacesConverter
實例而不是@Named
實例, @FacesConverter
發生這種情況。 @Inject
在@FacesConverter
上@FacesConverter
。 擺脫@FacesConverter
以避免將來的混亂,並以converter="#{categoryConverter}"
(使用@Named
)而不是converter="categoryConverter"
(使用@FacesConverter
)來引用該轉換converter="#{categoryConverter}"
。
請注意,我假設已正確配置Spring部分,否則它將仍然為null
。 我不做Spring,所以我不能告訴表單的頂部是否在CDI托管bean而不是Spring托管bean中工作。 我發現將CDI和Spring混合使用,而Spring卻是CDI / EJB的競爭者/替代者,這讓我感到驚訝和可笑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.