Joh*_*Doe 5 java spring properties
我需要在Spring的上下文中初始化SQL之前执行脚本PropertyPlaceholderConfigurer,只要应用程序属性存储在数据库中并且此脚本应插入它们.但是目前占位符是先前初始化的,这会导致错误.
有没有办法在Spring <jdbc:initialize-database data-source="dataSource" ...之前执行<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" ...?
或者有没有办法在placeholderConfig以后初始化bean?我试图使用depends-on,lazy-init这个bean的属性,但它没有帮助.提前致谢.
这就是我解决这个问题的方法.我创建了一个类Initializer.该类在其构造函数中执行普通的旧sql语句(java.sql.Statement),创建表(如果它不存在),并插入属性(如果它们不存在).该dataSourcebean是在上下文此构造过去了,placeholderConfigBean使用depends-on="initializerBean".因此,属性在使用之前会出现在数据库中.
小智 5
没有创建任何Bean的另一个解决方案:如果你有一个,<jdbc:initialize-database />你可以将这个属性添加depends-on="org.springframework.jdbc.datasource.init.DataSourceInitializer#0"到你的bean<bean id="placeholderConfig" />
如果你有多个<jdbc:initialize-database />适应#0.
| 归档时间: |
|
| 查看次数: |
7710 次 |
| 最近记录: |