我在Spring框架中使用ehcache。我正在使用ehcache.xml初始化ehcache。然而,我想在运行时添加某些属性,如terracottaconfig。为此,我覆盖了类EhCacheManagerFactoryBean。目前,我正在覆盖这个类的方法getObject()(我不知道这是否是一个正确的覆盖,因为在使用ehcache.xml文件初始化类之前,调用了其他方法setResources()和AftiesSet()。)
这是我的Spring配置文件
<bean id="cacheManager"
class="com.dexknows.util.CustomEhCacheManagerFactoryBean">
<property name="configLocation">
<value>file:///${vp_data_dir}/ehcache.xml</value>
</property>
<property name="terracottaConfigUrl" value="#{dexProperties['terracottaConfig.Url']}"/>
</bean>
这是我重写的类方法
public class CustomEhCacheManagerFactoryBean extends EhCacheManagerFactoryBean {
private String terracottaConfigUrl;
private Resource resourceConfiguration;
@Override
public void setConfigLocation(Resource configLocation) {
super.setConfigLocation(configLocation);
}
@Override
public void afterPropertiesSet() throws IOException, CacheException {
super.afterPropertiesSet();
}
@Override
public CacheManager getObject() {
CacheManager manager = super.getObject();
TerracottaClientConfiguration terracottaClientConfiguration = new TerracottaClientConfiguration();
terracottaClientConfiguration.setRejoin(true);
terracottaClientConfiguration.setUrl(terracottaConfigUrl);
manager.getConfiguration().setDynamicConfig(true);
manager.getConfiguration().terracotta(terracottaClientConfiguration);
Configuration().terracotta(terracottaClientConfiguration)));
return manager;
}
public String getTerracottaConfigUrl() {
return terracottaConfigUrl;
}
public void setTerracottaConfigUrl(String terracottaConfigUrl) {
this.terracottaConfigUrl = terracottaConfigUrl;
}
}
我得到以下例外:
创建名为cacheManager的bean时出错:FactoryBean在对象创建时抛出异常;嵌套异常java.lang.IllegalStateException:net.sf.ehcache.config.Configuration.dynamic配置不能动态更改
我已设置dynamicConfig=“true”
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd"
updateCheck="false"
monitoring="autodetect"
dynamicConfig="true"
name="xyz">
在分析EhCacheManagerFactoryBean类的源代码后,我发现“terracottaConfigConfiguration”不能动态更改。只有enum DynamicProperty中提到的属性可以动态更改。尽管如此,如果有人找到文档,提到同样的内容,这将是有益的。
问题内容: 我有一些人已经解决过的问题,但问题是我不了解我的实现中缺少什么。 我的hibernate代码的一部分如下: 问题是我想通过更改hibernate.connection.url属性中的“数据库”一词来选择要在运行时中使用的数据库。 在javaswing中,我正在实现此功能: } 然后,我用按钮检查所做的更改,从组合框中选择所需的数据库: 现在,debug1的输出正在更改,因此我在此打印中
我需要在运行时更改与数据库的连接。例如,如果请求的参数是BD1,则连接数据库1,如果是BD2,则连接数据库2,等等。 我用的是Spring靴。最好的方法是什么。 我有这个,但不知道说我的存储库如何使用。
我正在Eclipse JDT中开发一个项目,它对OSGI有可选的依赖性--也就是说,它支持作为OSGI包使用,如果它在OSGI环境中作为包使用,它还将引用OSGI中的一些类。 现在我想编写JUnit测试用例,既可以在OSGI内部运行,也可以在不运行OSGI的情况下运行,包含在两个不同的测试套件中。OSGI测试作为JUnit Pulg-in测试运行,而非OSGI测试应该作为普通JUnit测试运行。
问题内容: 而且我正在尝试更改方法注释,但是java.lang.reflect.Method不包含任何地图字段(例如“ annotations”)或方法(例如“ getDeclaredAnnotationMap”) 只有但是我可以用这个字节数组做什么? 那么,如何修改方法的注释呢? 编辑: 我创建了:http : //pastebin.com/T2rewcwU 但是,仅编辑此方法实例,如果取消注释
问题内容: 我们在模型pojos中的一些方法已被注释为: columnDefinition 属性取决于数据库供应商,因此在尝试使用Hibernate删除HSQLDB中的架构时会失败: 为了解决这个问题,我正在考虑这个解决方案(但不想花时间,如果不可能的话),在运行时,为每个方法列加注: 获取@Column批注 创建列注释的副本,使用javaassist将columnDefinition设置为nul
我想在服务器运行时在运行时添加或删除SpringCloudGateway路由。我正在使用Fluent Java Routes API初始化网关路由。这是完美的工作。 但是,现在我想在SpringCloudGateway服务器运行时修改、添加和删除路由。我可以看到RouteLocator包含我的路由,但我看不到修改其内容的方法。 尽管我看到一些在执行器中创建新路由的能力,但我需要使用Java代码而不