资源注入不起作用
Resource injection not work
我在管理控制台中为 MySQL 创建了新的数据源。 (名称: MySqlDS, JNDI: java:/jdbc/MySqlDB)
如果我通过以下方式加载它:
initialContext = new InitialContext();
dataSource = (DataSource) initialContext.lookup("java:/jdbc/MySqlDB");
connection = dataSource.getConnection();`
它工作正常。
但是如果我通过以下方式加载它:
@Resource(lookup="java:/jdbc/MySqlDB")
private static DataSource dataSource;
它不工作,dataSource 为空。
其他信息:
WildFLy 9 和 8
应用程序类型:Maven EJB
好了,问题解决了。这是我的错误。
依赖注入仅在容器管理 bean 的生命周期时才起作用。在这种情况下,容器将嵌入依赖项。
我的错误:我手动创建了 bean 的 new
实例,而不是使用 @EJB
注释。它位于依赖关系层次结构的顶部。这就是为什么我看不见它。并且容器无法填充所有嵌套注入的 bean 的所有依赖项。
我在管理控制台中为 MySQL 创建了新的数据源。 (名称: MySqlDS, JNDI: java:/jdbc/MySqlDB)
如果我通过以下方式加载它:
initialContext = new InitialContext();
dataSource = (DataSource) initialContext.lookup("java:/jdbc/MySqlDB");
connection = dataSource.getConnection();`
它工作正常。
但是如果我通过以下方式加载它:
@Resource(lookup="java:/jdbc/MySqlDB")
private static DataSource dataSource;
它不工作,dataSource 为空。
其他信息:
WildFLy 9 和 8
应用程序类型:Maven EJB
好了,问题解决了。这是我的错误。
依赖注入仅在容器管理 bean 的生命周期时才起作用。在这种情况下,容器将嵌入依赖项。
我的错误:我手动创建了 bean 的 new
实例,而不是使用 @EJB
注释。它位于依赖关系层次结构的顶部。这就是为什么我看不见它。并且容器无法填充所有嵌套注入的 bean 的所有依赖项。