您好我正在尝试在我的代码中注入一个对象。但由于某种原因,它将保持为空。
我尝试了以下事情;添加一个 PostConstruct(它不被称为......)删除 CDI 的其他部分以使第一个注入工作。还检查了是否在 Payara 中启用了 CDI。
我将 beans.xml 添加到 meta-inf & web-inf
我调用 bean 的代码的缩写版本。
public class MovieFacade implements iMovieFacade {
@Inject
private iMovieDao md;
@PostConstruct
void init(){
System.out.println(md);//I do this to test if the postConstruct is called
}
public List<Movie> getAllMovie() {
return md.getAllMovies();
}
}
我尝试调用的类的缩写代码。
@ApplicationScoped
public class MovieDao implements iMovieDao {
private DataStoreMaker dataStoreMaker;
private DCM dcm;
@PostConstruct
private void onInit(){
dataStoreMaker = new DataStoreMaker();
dcm = new DCM(dataStoreMaker.movieDS());
}
public List<Movie> getAllMovies(){
List<Movie> ml = dcm.find().asList();
return ml;
}
}
界面
public interface iMovieDao {
void newMovie(Movie movie);
Movie getId(String id);
List<Movie> getAllMovies();
void editMovie(Movie movie);
}