Đây là những gì xảy ra khi tôi chạy các bài kiểm tra tháng sáu của mình ...
Another CacheManager with same name 'cacheManager' already exists in the same VM. Please
provide unique names for each CacheManager in the config or do one of following:
1. Use one of the CacheManager.create() static factory methods to reuse same
CacheManager with same name or create one if necessary
2. Shutdown the earlier cacheManager before creating new one with same name.
The source of the existing CacheManager is:
DefaultConfigurationSource [ ehcache.xml or ehcache-failsafe.xml ]
Lý do đằng sau ngoại lệ là gì. Có thể có nhiều hơn 1 cacheManager chạy đồng thời không?
Đây là cách tôi định cấu hình cachManager bằng Sping 3.1.1. Nó đặt rõ ràng phạm vi của cacheManager thành "singleton"
<ehcache:annotation-driven />
<bean
id="cacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
scope="singleton"
/>
Ehcache.xml trông giống như
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false"
maxBytesLocalHeap="100M"
name="cacheManager"
>
....
</ehcache>
Cuối cùng là lớp của tôi
@Component
public class BookingCache implements CacheWrapper<String, BookingUIBean> {
@Autowired
private CacheManager ehCacheManager;
....
}
Tôi rất chắc chắn rằng tôi đang xử lý duy nhất một cacheManager trong cơ sở mã của mình. Một cái gì đó khác có thể đang chạy phiên bản thứ n.