小编Dav*_*hao的帖子

如何告诉Spring缓存不要在@Cacheable注释中缓存空值

有没有办法指定如果方法返回null值,那么不要将结果缓存在这样的方法的@Cacheable注释中?

@Cacheable(value="defaultCache", key="#pk")
public Person findPerson(int pk) {
   return getSession.getPerson(pk);
}
Run Code Online (Sandbox Code Playgroud)

更新:以下是去年11月提交的关于缓存空值的JIRA问题,尚未解决: [#SPR-8871] @Cachable条件应该允许引用返回值 - Spring Projects问题跟踪器

spring memcached caching

60
推荐指数
3
解决办法
5万
查看次数

如何在eclipse中更改Maven本地存储库

我从导入另一台服务器上A.在服务器A上的共享驱动器的根目录下多模块Maven项目,mvn install将成功运行,和Maven设置正确使用repository/settings.xml/home/user/.m2.

但是,在我的工作站PC上将项目导入Eclipse(实际上是STS)后,我无法运行mvn build(我安装了m2e插件),主要是因为缺少其他模块的依赖项.我意识到,Eclipse的使用settings.xmlrepository/我的工作站电脑上,所以不会有安装在.m2目录缓存中的任何模块装配.

我正在尝试修改Maven以使用服务器A上的.m2目录.我只能将settings.xml设置为服务器A上的那个,但我无法更改本地存储库.我唯一的选择是"重新索引".

有没有办法将本地存储库更改为服务器A上的存储库,或者是否有更好的方法在一台服务器上安装代码,在另一台PC上编辑/构建/测试Tomcat?

在此输入图像描述

eclipse maven

48
推荐指数
3
解决办法
13万
查看次数

从同一个类中调用时,忽略Spring缓存@Cacheable方法

我正在尝试@Cacheable从同一个类中调用一个方法:

@Cacheable(value = "defaultCache", key = "#id")
public Person findPerson(int id) {
   return getSession().getPerson(id);
} 

public List<Person> findPersons(int[] ids) {
   List<Person> list = new ArrayList<Person>();
   for (int id : ids) {
      list.add(findPerson(id));
   }
   return list;
}
Run Code Online (Sandbox Code Playgroud)

并希望结果findPersons也被缓存,但@Cacheable注释被忽略,并且findPerson每次都执行方法.

我在这里做错了什么,或者这是有意的吗?

spring caching spring-cache

36
推荐指数
2
解决办法
2万
查看次数

确保使用JDBC对数据库表进行原子读取的最佳实践是什么?

我有一个java应用程序从数据库表读取要处理的作业,我可能有多个这个应用程序的实例在不同的服务器上运行,因为每个作业是独立的.一旦找到作业进行处理,其状态将更新为"正在运行".我想要确保从每个实例检索要处理的作业是原子的,我如何使用JDBC实现这一点?

database jdbc

14
推荐指数
2
解决办法
713
查看次数

哪里可以下载ROME rss库jar?

似乎罗马下载不再存在(http://java.net/projects/rome/downloads).那我在哪里下载jar呢?它被停产了吗?谢谢,

大卫

java rss rome

13
推荐指数
2
解决办法
1万
查看次数

如何在Java中使用带有值的枚举

当我尝试使用枚举来存储:"=",">","<"等,我有:

    public static enum DataValueModifier {
    EQUAL("="),
    GREATER_THAN(">"),
    GREATER_EUQAL(">="),
    LESS_THAN("<"),
    LESS_EQUAL("<="),
    APPRROXIMATE("~"),
    NOT_DETERMINED("ND");
    private String value;
    private DataValueModifier(String value) {
        this.value = value;
    }
    public String getValue() {
        return value;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试比较字符串以查看它是否包含"="符号时,如何使用它,我应该这样做:

if (dataValue.contains(DataValueModifier.EQUAL.getValue())) {
...
}
Run Code Online (Sandbox Code Playgroud)

我明白使用枚举是更好的做法,但这看起来很傻......谢谢,

大卫

java enums

7
推荐指数
1
解决办法
2149
查看次数

如何使 Spring 缓存中的缓存名称可配置?

我们使用 Spring 缓存框架进行缓存,并且我们希望能够支持多个缓存命名空间,例如“book”或“isbn”,缓存命名空间是可配置的,而不是在类中进行硬编码,例如具有

@Cacheable({ "book","isbn"})
public Book findBook(ISBN isbn) {...}
Run Code Online (Sandbox Code Playgroud)

我们希望能够以某种方式从属性文件中注入缓存名称,以便可以动态设置缓存名称,例如:

@Cacheable({ #cachename1, #cachename2})
public Book findBook(ISBN isbn) {...}
Run Code Online (Sandbox Code Playgroud)

我在这里使用 SpEL,但不知道这是否可行。

java spring caching dependency-injection

7
推荐指数
2
解决办法
1万
查看次数

如何使用没有图像的CSS创建纹理纸张背景

有没有办法在没有图像的情况下使用CSS创建背景?有颜色和质地?

css background

6
推荐指数
1
解决办法
1万
查看次数

如何运行git rebase交互模式以删除重复的提交

当我最近提交时,我犯了一个错误.(我首先忘记了"git fetch --all",然后是rebase),并且我已经提交并推送到远程分支.现在我通过先获取,解决了冲突并推送到远程分支来正确地完成了rebase.现在,似乎我最近的所有提交都出现了两次.我想做的是使用git rebase交互模式,选择我想要的所有提交,然后正确地重新绑定到提交sha代码.这是这样做的方法吗?如果我启动git rebase -i,我应该使用哪个sha代码,原始分支点sha代码?还是最新的沙码?谢谢,

大卫

git git-rebase git-interactive-rebase

6
推荐指数
2
解决办法
5049
查看次数

在建立战争时,文件在maven项目中被覆盖

我正在使用maven构建一个Web应用程序项目,并且打包设置为"war".我还使用YUI压缩器插件来压缩webapp目录中的javascript代码.我已经设置了YUI压缩器,如下所示:

<plugin>
    <groupId>net.alchim31.maven</groupId>
    <artifactId>yuicompressor-maven-plugin</artifactId>
    <version>1.3.0</version>
    <executions>
        <execution>
        <phase>process-resources</phase>
        <goals>
            <goal>compress</goal>
        </goals>
        </execution>
    </executions>
    <configuration>
        <excludes>
        <exclude>**/ext-2.0/**/*.js</exclude>
        <exclude>**/lang/*.js</exclude>
        <exclude>**/javascripts/flot/*.js</exclude>
        <exclude>**/javascripts/jqplot/*.js</exclude>
        </excludes>
        <nosuffix>true</nosuffix>
        <force>true</force>
        <jswarn>false</jswarn>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

如果我这样做:mvn process-resources,src/main/webapp将被复制到target/webapp-1.0 /目录,并压缩javacripts.但是,当我运行mvn install时,所有压缩的javascripts都会被覆盖,显然打包过程会在构建war文件之前从main/webapp复制一次内容.

我怎么能绕过这个?

yui-compressor maven maven-war-plugin

6
推荐指数
1
解决办法
8299
查看次数