gpt4 book ai didi

java - 依赖注入(inject)不起作用

转载 作者:行者123 更新时间:2023-12-02 03:30:31 25 4
gpt4 key购买 nike

我的限定符是:

@Qualifier
@Target({ TYPE, METHOD, PARAMETER, FIELD })
@Retention(RUNTIME)
@Documented
public @interface JPADAOQ {
}

这是我想要注入(inject)的bean

@JPADAOQ
@ApplicationScoped
public class PlotDaoImpl extends JpaDao<Long, Plot> implements PlotDao {
public PlotDaoImpl() {
super(Plot.class);
}
}

最后这是我想要注入(inject)我的bean的地方

@ManagedBean
@SessionScoped
public class PlotController {
@Inject @JPADAOQ
private PlotDaoImpl plotDaoImpl;

@PostConstruct
public void init() {
if (plotDaoImpl==null) {
System.out.println("plotDaoImpl null");
} else {
System.out.println("plotDaoImpl not null");
}
}

但我总是把它设置为空,所以我无法使用它。

我的配置:
1.beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>

2.pom.xml基于 Wildfly 快速入门表格 here

   <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-7.0</artifactId>
<version>${version.jboss.spec.javaee.7.0}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.jboss.spec.javax.annotation</groupId>
<artifactId>jboss-annotations-api_1.2_spec</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.jboss.spec.javax.servlet</groupId>
<artifactId>jboss-servlet-api_3.1_spec</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>

我不明白为什么我的bean没有注入(inject)@PostConstruct方法。

最佳答案

@javax.faces.bean.ApplicationScoped 指定 JSF 托管 Bean 属于应用程序范围,但您必须将其注释为托管 Bean。

@javax.enterprise.context.ApplicationScoped 是一个 CDI 故事。你必须以某种方式生产它。也许在 PlotDaoImpl 中添加一个用 @Produces 注释的方法,该方法返回 this

关于java - 依赖注入(inject)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38152953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com