👽 测试Ehcache

pull/18/head
ruibaby 2018-06-28 14:10:22 +08:00
parent 129106a2ae
commit 6e7f7172d4
8 changed files with 60 additions and 36 deletions

View File

@ -92,6 +92,11 @@
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- freemarker依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>

View File

@ -3,6 +3,7 @@ package cc.ryanc.halo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
/**
* @author RYAN0UP
@ -10,6 +11,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*/
@Slf4j
@SpringBootApplication
@EnableCaching
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);

View File

@ -15,6 +15,8 @@ import java.io.Serializable;
@Data
public class Theme implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/

View File

@ -4,6 +4,8 @@ import cc.ryanc.halo.model.domain.Link;
import cc.ryanc.halo.repository.LinkRepository;
import cc.ryanc.halo.service.LinkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import java.util.List;
@ -19,6 +21,10 @@ public class LinkServiceImpl implements LinkService {
@Autowired
private LinkRepository linkRepository;
private static final String LINKS_CACHE_KEY = "'link'";
private static final String LINKS_CACHE_NAME = "links";
/**
* /
*
@ -26,6 +32,7 @@ public class LinkServiceImpl implements LinkService {
* @return Link
*/
@Override
@CacheEvict(value = LINKS_CACHE_NAME, key = LINKS_CACHE_KEY)
public Link saveByLink(Link link) {
return linkRepository.save(link);
}
@ -37,6 +44,7 @@ public class LinkServiceImpl implements LinkService {
* @return Link
*/
@Override
@CacheEvict(value = LINKS_CACHE_NAME, key = LINKS_CACHE_KEY)
public Link removeByLinkId(Long linkId) {
Optional<Link> link = this.findByLinkId(linkId);
linkRepository.delete(link.get());
@ -49,6 +57,7 @@ public class LinkServiceImpl implements LinkService {
* @return List
*/
@Override
@Cacheable(value = LINKS_CACHE_NAME, key = LINKS_CACHE_KEY)
public List<Link> findAllLinks() {
return linkRepository.findAll();
}

View File

@ -4,6 +4,8 @@ import cc.ryanc.halo.model.domain.Menu;
import cc.ryanc.halo.repository.MenuRepository;
import cc.ryanc.halo.service.MenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import java.util.List;
@ -19,12 +21,17 @@ public class MenuServiceImpl implements MenuService {
@Autowired
private MenuRepository menuRepository;
private static final String MENUS_CACHE_KEY = "'menu'";
private static final String MENUS_CACHE_NAME = "menus";
/**
*
*
* @return List
*/
@Override
@Cacheable(value = MENUS_CACHE_NAME, key = MENUS_CACHE_KEY)
public List<Menu> findAllMenus() {
return menuRepository.findAll();
}
@ -36,6 +43,7 @@ public class MenuServiceImpl implements MenuService {
* @return Menu
*/
@Override
@CacheEvict(value = MENUS_CACHE_NAME, key = MENUS_CACHE_KEY)
public Menu saveByMenu(Menu menu) {
return menuRepository.save(menu);
}
@ -47,6 +55,7 @@ public class MenuServiceImpl implements MenuService {
* @return Menu
*/
@Override
@CacheEvict(value = MENUS_CACHE_NAME,key = MENUS_CACHE_KEY)
public Menu removeByMenuId(Long menuId) {
Optional<Menu> menu = this.findByMenuId(menuId);
menuRepository.delete(menu.get());

View File

@ -16,10 +16,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.util.ResourceUtils;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URI;
@ -36,7 +32,6 @@ import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.List;
/**
* <pre>
@ -57,34 +52,6 @@ public class HaloUtils {
private static ArrayList<String> FILE_LIST = new ArrayList<>();
/**
*
*
* @param src
* @param dest
* @param w
* @param h
* @param suffix
* @throws IOException
*/
public static void cutCenterImage(String src, String dest, int w, int h, String suffix) {
try {
Iterator iterator = ImageIO.getImageReadersByFormatName(suffix);
ImageReader reader = (ImageReader) iterator.next();
InputStream in = new FileInputStream(src);
ImageInputStream iis = ImageIO.createImageInputStream(in);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
int imageIndex = 0;
Rectangle rect = new Rectangle((reader.getWidth(imageIndex) - w) / 2, (reader.getHeight(imageIndex) - h) / 2, w, h);
param.setSourceRegion(rect);
BufferedImage bi = reader.read(0, param);
ImageIO.write(bi, suffix, new File(dest));
} catch (Exception e) {
log.error("剪裁失败,图片本身尺寸小于需要修剪的尺寸:{0}", e.getMessage());
}
}
/**
*
*

View File

@ -24,12 +24,9 @@ import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.websocket.server.PathParam;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;

View File

@ -0,0 +1,33 @@
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false">
<defaultCache
eternal="false"
maxElementsInMemory="1000"
overflowToDisk="false"
diskPersistent="false"
timeToIdleSeconds="0"
timeToLiveSeconds="600"
memoryStoreEvictionPolicy="LRU"/>
<cache
name="links"
eternal="false"
maxElementsInMemory="100"
overflowToDisk="false"
diskPersistent="false"
timeToIdleSeconds="0"
timeToLiveSeconds="300"
memoryStoreEvictionPolicy="LRU"/>
<cache
name="menus"
eternal="false"
maxElementsInMemory="20"
overflowToDisk="false"
diskPersistent="false"
timeToIdleSeconds="0"
timeToLiveSeconds="300"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>