【发布时间】:2020-01-16 22:11:37
【问题描述】:
我在 java springboot 中有以下配置类定义。但是,它无法引用属性值。
@org.springframework.context.annotation.Configuration
public class HbaseConfig {
@Value("${keytab.user.name}")
private String username;
@Value("${keytab.path}")
private String keytabpath;
@Bean
public Connection getHbaseConnect() throws IOException {
Configuration conf = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(conf);
UserGroupInformation.setConfiguration(conf);
System.out.println("hbase connect..is connection closed..." + connection.isClosed());
UserGroupInformation.loginUserFromKeytabAndReturnUGI(username, keytabpath);
return connection;
}
@Bean
public Admin getHbaseAdmin(Connection connection) throws IOException{
Admin admin = connection.getAdmin();
return admin;
}
}
application.properties
keytab.user.name="username"
keytab.path="pathtokeytab"
简单地说,我需要从我的 HbaseConfig 类中的属性文件中读取上述 keytab 用户名和路径。
【问题讨论】:
-
错误是什么?你得到空指针异常了吗?
-
你有没有使用属性名作为application.property
-
显示你的属性文件代码
-
@Jonathan Johx,是的空指针异常。我可以猜到问题是在查找值之前首先实例化 bean 的 Bean 中引用的值?。
-
@Siva 将
application.properties重命名为bootstrap.properties这应该可以工作。
标签: java spring spring-boot