小编Tim*_*lay的帖子

在Dropwizard中设置静态资产的缓存控制标头

在Dropwizard服务中设置静态资产的缓存控制头的最佳方法是什么?

一些谷歌搜索出现了一个AssetsBundle构造函数:

AssetsBundle(String resourcePath,com.google.common.cache.CacheBuilderSpec cacheBuilderSpec,String uriPath)

然而,经过进一步调查,看起来com.yammer.dropwizard.bundles软件包自版本5.1以来就不属于Dropwizard.

也许我错过了一些明显的东西,但有没有一种首选方法来处理这个问题?

cache-control dropwizard

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

如何强制重新检查 Vuelidate 验证

如何强制 Vuelidate 重新检查验证?

我的用例是,我有一个表单字段,用户可以在其中输入远程目录的名称,并且我有一个 Vuelidate 验证,它会检查服务器是否存在该目录

validations: {
  directory: {
    exists(value) {
      return checkExistsOnServer(value).then(result => result.directoryExists)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

当目录字段更新时,这将按预期工作。但是,应用程序中的其他操作可能会影响该目录是否存在于服务器上,因此我需要一种方法能够手动强制重新运行此检查以响应页面上的各种事件。如何exists在不更改字段值的情况下强制重新运行此检查directory

从文档中,我认为调用this.$v.directory.$touch()可以做到这一点,但似乎并非如此。我$reset()之前也尝试过打电话$touch()

我创建了这个JSFiddle显示我当前不成功的尝试。

javascript vue.js vuelidate

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

开始,完整和失败方法中的周围代码的设计模式

假设我有各种各样的代码段要运行,但在每个部分之前,我必须运行一个Start()方法,然后在每个部分后我需要运行一个Complete()方法.但是,如果在代码部分抛出异常,我想运行一个Fail(string message)方法而不是Complete().是否有一种优雅的封装设计模式,使其整洁,易于重复?

例如,假设我有一个名为的类型Thing,其中包含一个Start()方法,该方法将一行添加到日志记录db表以反映任务正在进行中,该Complete()方法更改该行以反映任务已完成以及Fail(string message)更改方法的方法行反映任务失败.这些只是一些例子,他们可以做任何设置和整理类型的任务.

天真的实现可能只是手动调用这些方法:

public void DoStuff()
{
    var thing = new Thing();
    thing.Start();
    try
    {
        DoImportantStuff();
        thing.Complete();
    }
    catch (Exception e)
    {
        thing.Fail(e.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果我不得不在很多不同的地方重复这一点,它最终会造成很多重复,并且可能很容易忘记以Complete某种微妙的方式打电话或弄乱它.

在C#中,有这种using模式,它提供了封装大部分内容的好方法.例如,如果我的Thing类型如下所示:

public class Thing : IDisposable
{
    public Thing(){
        Start();
    }

    private void Start() { /* start */ }
    private void Complete() { /* complete */ }

    public void Dispose() …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns

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

Maven Mojo没有从pom获取配置

我已经编写了一个Maven插件,并将其作为目标添加到另一个项目的打包阶段中,并在该项目的pom.xml中进行了配置。但是,使用@parameter表示法设置的所有字段最终都不会填充,因此它们在使用时只会抛出NullPointerExceptions。

我的魔咒:

/**
 * @goal wrap
 * @phase package
 */
public class MyMojo extends AbstractMojo {

    /**
     * @parameter expression="${project.build.directory}"
     */
    private String outputDirectory;

    /**
     * @parameter
     */
    private String dbDataName;

    private File dbFile;

    public MyMojo(){
        dbFile = new File(outputDirectory, dbDataName) // throws nullpointerexception
    }

    public void execute() throws MojoExecutionException{
        // Do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

一些Mojo Pom:

<groupId>com.mycompany.wrapper</groupId>
<artifactId>something-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>

...

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-plugin-plugin</artifactId>
        <version>3.2</version>
        <configuration>
            <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
        </configuration>
        <executions>
            <execution>
                <id>mojo-descriptor</id>
                <goals>
                    <goal>descriptor</goal>
                </goals>
            </execution>
        </executions>
    </plugin> …
Run Code Online (Sandbox Code Playgroud)

maven-plugin pom.xml maven

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