如你在标题中看到的那样,问题很清楚,我将很高兴听到你对adv./disadv的看法.他们之间的差异.
更新: 我决定使用Hazelcast,因为它具有分布式缓存/锁定机制等优点,并且在适应您的应用程序时非常容易配置.
我有一个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) 我有以下课程:
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) 我有一个项目的解决方案.打开包管理器控制台,运行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)
我不明白为什么会这样.请建议我等待回复.谢谢
我们使用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以来我就遇到了这个问题.
鉴于这种:
<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的所有实例?
如果我有1000多个测试的场景,并且想要只运行它们的选定部分我可以使用fdescribe.
其余的测试被跳过,这很好但是它们仍然污染了控制台输出.如何抑制跳过测试的控制台输出?
如果单个条件为真,我有几个必填字段。有没有更好的方法来压缩此代码以避免重复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) 我有这门课:
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参考文件的实例相同? new StoreAuthorizer()真的是getInstance()在幕后打电话吗?在Guice文档中,有一个Untargetted Binding示例:
bind(MyConcreteClass.class)
.annotatedWith(Names.named("foo"))
.to(MyConcreteClass.class);
Run Code Online (Sandbox Code Playgroud)
有人可以用简单的英语解释这究竟是做什么以及为什么要这样做?
java ×3
annotations ×2
ehcache ×2
guice ×2
caching ×1
filtering ×1
generics ×1
gradle ×1
hazelcast ×1
javac ×1
javascript ×1
karma-runner ×1
logback ×1
msbuild-task ×1
singleton ×1
slf4j ×1
spring ×1
validation ×1
xml ×1
xpath ×1
yup ×1