是否有人在Spring 4.2中实现了EhCache 3(未使用Spring boot)。如果是这样的话,实施的步骤是什么?
问题是spring-content-support(它添加了Spring的缓存注释)期望Ehcache的CacheManager在这个类路径上:net.sf.ehcache.CacheManager
然而,在Ehcache 3中,CacheManager类驻留在另一个类路径上:org。ehcache。缓存管理器。
因此,基本上spring上下文支持不支持Ehcache 3。您必须直接使用JSR-107注释,而不是Spring提供的注释。
如果有人实现了这种组合,请给出您的答案。xml和spring配置供参考。
我建议您依赖JSR-107(又名JCache,在JVM上缓存的标准API)Spring支持,然后在类路径上添加ehcache3。
您还可以使用Spring自己的注释,这些注释与JSR 107的注释集成得非常好:Spring已经支持JSR-107将近4年了:https://spring.io/blog/2014/04/14/cache-abstraction-jcache-jsr-107-annotations-support.
我邀请你访问上面的博客文章和它链接到的文档,你的用例是非常标准和非常受支持的。请随时提问。
Ehcache 3通过JSR-107使用。这里有一个例子。
您的pom。xml:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
<version>1.1.0</version>
</dependency>
你的
ehcache.xml
(在类路径的根目录):
<?xml version="1.0" encoding="UTF-8"?>
<config
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:jsr107='http://www.ehcache.org/v3/jsr107'
xmlns='http://www.ehcache.org/v3'
xsi:schemaLocation="
http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.4.xsd
http://www.ehcache.org/v3/jsr107 http://www.ehcache.org/schema/ehcache-107-ext-3.4.xsd">
<service>
<jsr107:defaults enable-management="false" enable-statistics="true"/>
</service>
<cache alias="cache">
<resources>
<heap unit="entries">2000</heap>
</resources>
</cache>
</config>
使用缓存的示例应用程序:
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.jcache.JCacheCacheManager;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.net.URISyntaxException;
import javax.cache.Caching;
@EnableCaching
@Configuration
public class App {
private static int value = 0;
@Bean
public CacheManager cacheManager() throws URISyntaxException {
return new JCacheCacheManager(Caching.getCachingProvider().getCacheManager(
getClass().getResource("/ehcache.xml").toURI(),
getClass().getClassLoader()
));
}
public static void main( String[] args ) {
ApplicationContext context = new AnnotationConfigApplicationContext(App.class);
App app = context.getBean(App.class);
System.out.println(app.incValue());
System.out.println(app.incValue()); // still return 0
}
@Cacheable("cache")
public int incValue() {
return value++;
}
}
我想使用而不使用。我们有一个与Spring现有的项目,但我有麻烦配置没有。 当我使用@EnableZuulProxy注释时,出现以下错误: 原因:org。springframework。豆。工厂UnsatifiedPendencyException:创建名为“org”的bean时出错。springframework。云netflix。祖尔。ZuulProxyConfiguration”:通过字段“
我尝试将Spring Boot与HikariDataSource配合使用,但出现了错误。断管怎么配置比较好还是用c3p0比较好?我正在使用这个配置 我使用: 和 springboot 版本 1.4.2.RELEASE
我已经为Postgresql启用了复制,并且正在使用PGPool进行负载平衡。 我在使用HikariCP甚至Apache DBCP连接到Postgres时遇到了问题。 在SpringBoot应用程序中有没有使用PGPool的方法? 请查找堆栈跟踪: 2018-08-10 10:20:19.124信息37879----[main]com.zaxxer.hikari.hikaridatasource:
我正在springboot应用程序中编写Junits,它只有一个初始化器类 以及其他控制器和服务类。 服务类的Junit如下所示: 当我运行Junit时,它会抛出如下错误: 我还尝试了所有注释,如,@ContextConfiguration(classes=Initializer.class),,但它仍会抛出相同的错误。代码中没有其他类似于应用程序上下文的配置类。
本文向大家介绍SpringBoot AOP使用笔记,包括了SpringBoot AOP使用笔记的使用技巧和注意事项,需要的朋友参考一下 1. 启用AOP a. 在类上添加@Aspect注解 b. 注入该类, 可以使用@Component进行注入到Spring容器中 2. 通过PointCut对象创建切入点 a. 在某个方法使用类似下面的方法进行注入 i. 其中,execution表达式为 exec
似乎没有使用Hikaricp。 例如,Spring。数据源。始终影响最大池大小。Spring数据源。希卡里。最大池大小不受影响。 我设定如下: 然后我通过netstat命令检查连接数。有10个连接。似乎hikari的最大池大小不起作用。即使我删除了spring.datasource.maximum池大小,hikari的最大池大小仍然不起作用。 此外,我设置了以下日志事件,但没有关于HikariCP
我试图设置本地DynamoDB实例与SpringBoot。我跟着这个,但是格拉德尔。 当我尝试运行我的应用程序时,会出现以下异常: 我知道这是由于歧义导致的依赖注入失败,但我的是一个无参数构造函数。不确定歧义在哪里。 以下是我的代码: 格雷德尔锉刀 发电机配置 代理(实体) @DynamoDBTable(tableName="Agent")公共类Agent{私有字符串代理号;私有整数id;私有企业