如何从apache shiro.ini文件中的数据源的java类中读取密码

如何从apache shiro.ini文件中的数据源的java类中读取密码,java,shiro,Java,Shiro,我想从java类设置数据源密码。因此,我将apacheshiro.ini文件配置为从java类读取密码字段,但它不起作用 这是数据源的我的shiro.ini文件 ds = com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds.serverName = localhost ds.user = root dbpassword=com.test.password.PasswordFactory //this is

我想从java类设置数据源密码。因此,我将apacheshiro.ini文件配置为从java类读取密码字段,但它不起作用

这是数据源的我的shiro.ini文件

     ds = com.mysql.jdbc.jdbc2.optional.MysqlDataSource
     ds.serverName = localhost
     ds.user = root

     dbpassword=com.test.password.PasswordFactory   //this is class name
     ds.password=$dbpassword.password
     ds.databaseName = test
     jdbcRealm.dataSource = $ds
PasswordFactoryJava类是

package com.test.password;

public class PasswordFactory {

public String password; 
public PasswordFactory(){
    password="root";
}   
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}
  }
这将引发异常
id为[dbpassword.password]的对象尚未定义,因此无法引用。请确保按照创建对象的顺序定义对象,并使其可供将来参考。

您已将dbpassword设置为整个类PasswordFactory,并且factory类本身没有变量“password”;相反,只有PasswordFactory的实例才有密码。您需要构造一个PasswordFactory实例,使用shiro执行与java代码等效的操作

dbpassword=new com.test.password.PasswordFactory()

此引发异常org.apache.shiro.config.ConfigurationException:无法为名为“dbpassword”的对象实例化类[new com.test.password.PasswordFactory()]。请确保正确指定了完全限定类名。@user2549122我不熟悉shiro,而是编写了等效的Java代码。在相关文档中搜索如何在shiro中构造Java对象,然后可以随意建议使用正确的shiro语法进行编辑。