我有一个Java应用程序,它接受用户输入的配置文件路径。我想把这个输入配置文件路径传递给我的spring applicationContext.xml,这样我就可以用dburl、dbusername和dbpasswd创建数据源的bean,这些将在我的应用程序的其他类中使用。
是否有一种方法将运行时用户参数传递给Spring应用程序上下文?如果是,那么如何在applicationContext.xml
创建一个保存运行时数据的类,在applicationContext.xml中将其声明为Bean,然后在数据源的属性中提供该类的引用。
基本上有三种方法可以使应用程序上下文意识到运行时配置:
- 使用属性文件和
PropertyPlaceholderConfigurer
-它会工作得很好,但你必须使用磁盘文件来传递已经在内存中的数据 - 使用系统属性,因为
PropertyPlaceholderConfigurer
可以使用它们作为属性文件的后备(或优先)-不使用磁盘,但您必须正确选择属性名称以避免副作用(通常前缀必须在您自己的名称空间中) - 在专用类甚至bean中使用静态字段-不一定很好,但是它只是工作
当然,无论您选择什么方法,请确保在刷新和启动应用程序上下文之前初始化这些数据。