我现在尝试在Quarkus应用程序中配置自定义ConfigSource。像许多其他手册一样,我创建了自己的DatabaseSourceConfig并实现了[[org.eclipse.microprofile.config.spi.ConfigSource接口。我在以下位置注册了ConfigSource:/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource
有我的ConfigSource:
public class DatabaseConfigSource implements ConfigSource {
private DataSource dataSource;
public DatabaseConfigSource() {
try {
dataSource = (DataSource) new InitialContext().lookup("openejb:Resource/config-source-database");
} catch (final NamingException e) {
throw new IllegalStateException(e);
}
}
@Override
public Map<String, String> getProperties() {
// Implementing Method
}
@Override
public String getValue(final String propertyName) {
// Implementing Method
}
@Override
public String getName() {
return DatabaseConfigSource.class.getSimpleName();
}
}
但是由于JNDI名称,这不适用于Quarkus。我需要使用CDI。我正在尝试使用类似这样的东西:
@Inject
@io.quarkus.agroal.DataSource("my_connection")
AgroalDataSource usersDataSource;
并在application.properties中声明此连接,但这对我没有帮助。我一直在获取NULL异常。也许有人有想法,如何不使用JNDI命名空间就可以在那里建立数据库连接?
我现在尝试在Quarkus应用程序中配置自定义ConfigSource。像其他许多手册一样,我创建了自己的DatabaseSourceConfig并实现了org.eclipse.microprofile.config.spi.ConfigSource ...
AgroalDataSource dataSource = Arc.container()
.instance(AgroalDataSource.class, new DataSource.DataSourceLiteral("my_connection"))
.get();