当前位置: 首页 > news >正文

东莞市住建局局长/搜索引擎优化的各种方法

东莞市住建局局长,搜索引擎优化的各种方法,门户网站都在哪推广,聊城专业网站建设缓存可以缓解数据库访问的压力,Spring自身不提供缓存的存储实现,需要借助第三方,比如JCache、EhCache、Hazelcast、Redis、Guava等。Spring Boot可以自动化配置合适的缓存管理器(CacheManager),默认采用的是…

缓存可以缓解数据库访问的压力,Spring自身不提供缓存的存储实现,需要借助第三方,比如JCache、EhCache、Hazelcast、Redis、Guava等。Spring Boot可以自动化配置合适的缓存管理器(CacheManager),默认采用的是ConcurrentMapCacheManager(java.util.concurrent.ConcurrentHashMap)。 

(1)添加 spring-boot-starter-cache 依赖 

Xml代码 

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-cache</artifactId>  
</dependency>  

(2)开启缓存功能 

Java代码 

@Configuration  
@EnableCaching  
public class CacheConfig {  }  


(3)缓存数据 
对于缓存的操作,主要有:@Cacheable、@CachePut、@CacheEvict。 

@Cacheable 
Spring 在执行 @Cacheable 标注的方法前先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,执行该方法并将方法返回值放进缓存。 
参数: value缓存名、 key缓存键值、 condition满足缓存条件、unless否决缓存条件 

Java代码 

@Cacheable(value = "user", key = "#id")  
public User findById(final Long id) {  System.out.println("cache miss, invoke find by id, id:" + id);  for (User user : users) {  if (user.getId().equals(id)) {  return user;  }  }  return null;  
}  

@CachePut 
和 @Cacheable 类似,但会把方法的返回值放入缓存中, 主要用于数据新增和修改方法。 

Java代码 

@CachePut(value = "user", key = "#user.id")  
public User save(User user) {  users.add(user);  return user;  
}  

@CacheEvict 
方法执行成功后会从缓存中移除相应数据。 
参数: value缓存名、 key缓存键值、 condition满足缓存条件、 unless否决缓存条件、 allEntries是否移除所有数据(设置为true时会移除所有缓存) 

Java代码 

@CacheEvict(value = "user", key = "#user.id") // 移除指定key的数据  
public User delete(User user) {  users.remove(user);  return user;  
}  

Java代码 

@CacheEvict(value = "user", allEntries = true) // 移除所有数据  
public void deleteAll() {  users.clear();  
}  

(4)集成EhCache 
 

Xml代码 

<dependency>  <groupId>net.sf.ehcache</groupId>  <artifactId>ehcache</artifactId>  
</dependency>  

SpringBoot可以自动配置不需要什么特殊设置即可使用。 

src/main/resources/ehcache.xml 

Xml代码 

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:noNamespaceSchemaLocation="ehcache.xsd">  <cache name="user" maxEntriesLocalHeap="200" timeToLiveSeconds="600">  </cache>  
</ehcache>  

src\main\resources/application.properties 

引用

spring.cache.ehcache.config=classpath:ehcache.xml

如果想自定义设置一些个性化参数时,通过Java Config形式配置。 

Java代码 

@Configuration  
@EnableCaching  
public class CacheConfig {  @Bean  public CacheManager cacheManager() {  return new EhCacheCacheManager(ehCacheCacheManager().getObject());  }  @Bean  public EhCacheManagerFactoryBean ehCacheCacheManager() {  EhCacheManagerFactoryBean cmfb = new EhCacheManagerFactoryBean();  cmfb.setConfigLocation(new ClassPathResource("ehcache.xml"));  cmfb.setShared(true);  return cmfb;  }  }  

(5)组合CacheManager 

从多个CacheManager中轮询得到相应的Cache。 

Java代码 

@Configuration  
@EnableCaching  
public class CacheConfig {  @Bean  public CacheManager compositeCacheManager(RedisTemplate<Object, Object> redisTemplate) {  CompositeCacheManager cacheManager = new CompositeCacheManager(new ConcurrentMapCacheManager(), new SimpleCacheManager());  cacheManager.setFallbackToNoOpCache(false);  cacheManager.afterPropertiesSet();  return cacheManager;  }  }  

*** 设置缓存无效化 spring.cache.type=none 
*** 缓存的对象必须实现Serializable 
*** 除GuavaCacheManager之外都支持Spring事务,即回滚时Cache的数据也会被移除

相关文章:

  • 企业门户网站模式/站长工具seo综合查询columbu cat
  • 做视频链接哪个网站没有广告/优化建站seo门户
  • 广东门户网站建设/网络营销策划与创意
  • 门户网站建设服务/西安关键词优化服务
  • 门户网站优化报价/深圳网络推广服务公司
  • 企业官网门户网站管理系统/网站seo快速排名
  • 网站建设pdf 下载/seo实战培训学校
  • 建立门户网站的费用/怎么推广
  • 网站建设 问卷调查/北京百度关键词优化
  • 网站开发接外包/360指数
  • 做门户网站起什么域名好/大数据下的精准营销
  • 插入视频网站/北京线上教学