小编Sne*_*kse的帖子

hazelcast vs ehcache

如你在标题中看到的那样,问题很清楚,我将很高兴听到你对adv./disadv的看法.他们之间的差异.

更新: 我决定使用Hazelcast,因为它具有分布式缓存/锁定机制等优点,并且在适应您的应用程序时非常容易配置.

ehcache hazelcast

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

在多个模块中使用Spring缓存注释

我有一个util模块,可以生成一个可以在其他应用程序中使用的jar.我希望这个模块使用缓存,并且更喜欢使用Spring的annotation-driven缓存.

所以Util-Module会有这样的事情:


DataManager.java

...
@Cacheable(cacheName="getDataCache")
public DataObject getData(String key) { ... }
...
Run Code Online (Sandbox Code Playgroud)

数据管理器 - ehcache.xml中

...
<cache name="getDataCache" maxElementsInMemory="100" eternal="true" />
...
Run Code Online (Sandbox Code Playgroud)

数据管理器弹簧-config.xml中

...
<cache:annotation-driven cache-manager="data-manager-cacheManager" />
<!-- ???? --->
<bean id="data-manager-cacheManager" 
    class="org.springframework.cache.ehcache.EhcacheCacheManager" 
    p:cache-manager="data-manager-ehcache"/>
<bean id="data-manager-ehcache" 
    class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" 
    p:config-location="data-manager-ehcache.xml"/>
...
Run Code Online (Sandbox Code Playgroud)

我还希望我的可部署单元通过Spring注释进行缓存,同时将上面的jar包含为依赖项.所以我Deployable-Unit会有这样的事情:


MyApp.java

...
@Cacheable(cacheName="getMyAppObjectCache")
public MyAppObject getMyAppObject(String key) { ... }
...
Run Code Online (Sandbox Code Playgroud)

我-APP-ehcache.xml中

...
<cache name="getMyAppObjectCache" maxElementsInMemory="100" eternal="true" />
...
Run Code Online (Sandbox Code Playgroud)

我的应用程序内弹簧-config.xml中

...
<cache:annotation-driven cache-manager="my-app-cacheManager" />
<!-- ???? --->
<bean id="my-app-cacheManager" 
    class="org.springframework.cache.ehcache.EhcacheCacheManager" 
    p:cache-manager="my-app-ehcache"/>
<bean id="my-app-ehcache" …
Run Code Online (Sandbox Code Playgroud)

spring caching annotations ehcache spring-annotations

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

为什么编译器声明没有唯一的最大实例存在?

我有以下课程:

public class Obj<T> extends BaseModel {

    public static final String OBJECT = "object";

    public Obj(T object) {
        setObject(object);
    }

    public T getObject() {
        return get(OBJECT);
    }

    public void setObject(T object) {
        set(OBJECT, object);
    }
}
Run Code Online (Sandbox Code Playgroud)

和...

/** This is a 3rd party library class **/
public class BaseModel implements ModelData, Serializable {
  //...members and stuff...

  @SuppressWarnings({"unchecked", "rawtypes"})
  public <X> X get(String property) {
    X obj = null;
    if (start > -1 && end > -1) {
      Object o = …
Run Code Online (Sandbox Code Playgroud)

java compiler-construction generics compiler-errors javac

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

如何解决"Install-Package:当前环境没有打开解决方案".

我有一个项目的解决方案.打开包管理器控制台,运行Install-Package MSBuildTasks但它在下面给出了一个错误:

Install-Package : The current environment doesn't have a solution open.
At line:1 char:16
+ Install-Package <<<<  MSBuildTasks 
    + CategoryInfo          : InvalidOperation: (:) [Install-Package], InvalidOperationExcep 
   tion
    + FullyQualifiedErrorId : NuGetNoActiveSolution,NuGet.PowerShell.Commands.InstallPackage 
   Command
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样.请建议我等待回复.谢谢

msbuild-task visual-studio nuget-package visual-studio-2012

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

IntelliJ 14.1以xml记录输出

我们使用slf4j和logback,当从命令行运行时,它仍然按预期工作,但在intellij中它是不同的.

在intellij中使用gradle运行junit测试,日志输出采用以下xml格式:

<ijLog><event type='afterSuite'><ijLogEol/>
  <test id='root' parentId=''><ijLogEol/>
    <descriptor name='Test Run' className='' /><ijLogEol/>
    <result resultType='SUCCESS' startTime='1427264227574' endTime='1427264315052'><ijLogEol/>
      <failureType>error</failureType><ijLogEol/>
    </result><ijLogEol/>
  </test><ijLogEol/>
</event></ijLog>
Run Code Online (Sandbox Code Playgroud)

我不希望IDE改变任何东西,只需使用我们提供的日志记录.这种用法很好,但自14.1以来我就遇到了这个问题.

java intellij-idea logback slf4j gradle

20
推荐指数
3
解决办法
1859
查看次数

xPath:仅当子元素不包含特定值时才选择父元素

鉴于这种:

<element_1> 
    <element_2>Text</element_2> 
    <element_3> 
        <element_4> 
            <element_5>Text with @ in Value</element_5> 
        </element_4> 
        <element_4> 
            <element_5>Test Text</element_5> 
        </element_4> 
    </element_3> 
    <element_6> 
        <element_7> 
            <element_8>0</element_8> 
...
Run Code Online (Sandbox Code Playgroud)

如何在element_5中选择包含"@"的element_1的所有实例?

xml xpath filtering

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

如何在Jasmine中抑制跳过测试的输出

如果我有1000多个测试的场景,并且想要只运行它们的选定部分我可以使用fdescribe.

其余的测试被跳过,这很好但是它们仍然污染了控制台输出.如何抑制跳过测试的控制台输出?

karma-runner karma-jasmine

10
推荐指数
2
解决办法
3481
查看次数

如何压缩是的“何时”验证

如果单个条件为真,我有几个必填字段。有没有更好的方法来压缩此代码以避免重复when所有这些字段?

const requiredForDiffAddress = {
    is: false,
    then: Yup.string().required()
};

export const BillingAddressYupValidationSchemaShape = {
  useShippingAddress: Yup.boolean().default(true).required(),
  street: Yup.string()
      .when('useShippingAddress', requiredForDiffAddress),
  city: Yup.string()
      .when('useShippingAddress', requiredForDiffAddress),
  state: Yup.string()
      .when('useShippingAddress', requiredForDiffAddress),
  zipCode: Yup.string()
      .when('useShippingAddress', requiredForDiffAddress),
};
Run Code Online (Sandbox Code Playgroud)

或者获取更真实、更复杂的样本

const buildRequiredForDiffAddress = requiredText => ({
    is: false,
    then: Yup.string().required(requiredText)
});

export const BillingAddressYupValidationSchemaShape = {
  useShippingAddress: Yup.boolean().default(true).required(),
  street1: Yup.string().when('useShippingAddress', 
      buildRequiredForDiffAddress("How will we know where to send your order?")),
  city: Yup.string().when('useShippingAddress', 
    buildRequiredForDiffAddress("What city do you live in?")),
  state: Yup.string().when('useShippingAddress',
    buildRequiredForDiffAddress("State please!")),
  zipCode: Yup.string().when('useShippingAddress', …
Run Code Online (Sandbox Code Playgroud)

javascript validation yup

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

在Guice模块中获取实例

我有这门课:

public class CompositeSecurityAuthorizer implements SecurityAuthorizer {
    @inject @CompositeSecurityAuthorizerAnnot
    List<SecurityAuthorizer> authorizers; //Field Injection
}
Run Code Online (Sandbox Code Playgroud)

我想为该authorizers字段注入一个List<SecurityAuthorizer>值.

在我的模块中,我有以下内容:

@Override
protected void configure() {
  bind(CompositeSecurityAuthorizer.class).in(Singleton.class);
  bind(StoreAuthorizer.class).in(Singleton.class);
  bind(SecurityAuthorizer.class)
      .annotatedWith(CompositeSecurityAuthorizerAnnot.class)
      .to(CompositeSecurityAuthorizer.class);
}

@Provides @CompositeSecurityAuthorizerAnnot
List<SecurityAuthorizer> provideAuthorizersList()
{
    List<SecurityAuthorizer> authList = new ArrayList<SecurityAuthorizer>();
    //How do I add StoreAuthorizer while maintaining a Singleton?
    //Will the line below do it through Guice magic?
    //authList.add(new StoreAuthorizer());
    return authList;
}
Run Code Online (Sandbox Code Playgroud)

我的问题嵌入在代码注释中.当我添加StoreAuthorizer到那个List<SecurityAuthorizer>:

  • 我如何确保它与其他StoreAuthorizer参考文件的实例相同?
  • 这是Guice刚刚在幕后做的事情,所以new StoreAuthorizer()真的是getInstance()在幕后打电话吗?

singleton dependency-injection guice

5
推荐指数
1
解决办法
3415
查看次数

Guice中的无题绑定

在Guice文档中,有一个Untargetted Binding示例:

bind(MyConcreteClass.class)
   .annotatedWith(Names.named("foo"))
   .to(MyConcreteClass.class);
Run Code Online (Sandbox Code Playgroud)

有人可以用简单的英语解释这究竟是做什么以及为什么要这样做?

java annotations dependency-injection guice

4
推荐指数
1
解决办法
184
查看次数