小编Joh*_*erg的帖子

将标记添加到lucene令牌流

我写了一个TokenFilter在流中添加令牌的.

测试显示它有效,但我不完全理解为什么.

如果有人能够阐明语义,我将不胜感激.特别是在(*)恢复状态时,这是否意味着我们要么覆盖当前令牌,要么在捕获状态之前创建令牌?

这大致就是我所做的

private final LinkedList<String> extraTokens = new LinkedList<String>();
private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
private State savedState;

@Override
public boolean incrementToken() throws IOException {
    if (!extraTokens.isEmpty()) {
        // Do we not loose/overwrite the current termAtt token here? (*)
        restoreState(savedState);
        termAtt.setEmpty().append(extraTokens.remove());
        return true;
    }
    if (input.incrementToken()) {
        if (/* condition */) {
           extraTokens.add("fo");
           savedState = captureState();
        }
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着,对于空白标记化字符串的输入流 "a b c"

 (a) -> (b) -> (c) -> ... …
Run Code Online (Sandbox Code Playgroud)

java lucene solr token solr4

11
推荐指数
1
解决办法
3181
查看次数

为jsp代码导入java库

嘿伙计们,怎么了?我在jsp上有以下代码.我想添加java.io等库.我可以这样做吗?先谢谢

<% @page import=java.io.BufferedReader;
@page import=java.io.IOException;
@page import=java.io.InputStreamReader;
String IP=request.getParameter("IP");

String res="";

        Runtime run = Runtime.getRuntime();
        Process pr = run.exec("snmpget -v 2c -c public "+IP+" SNMPv2-MIB::sysUpTime.0");
        pr.waitFor();
        BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream()));
        String line = "";
        //String res="";
            while ((line = buf.readLine()) != null)
            {
                res+=line+"\n";
            }
        int i=res.indexOf(")");
      //  System.out.println(i);

        res=res.substring(i+1).trim();

        //System.out.print(res);

    } catch (InterruptedException ex)
    {
        Logger.getLogger(myMain.class.getName()).log(Level.SEVERE, null, ex);
    }
    catch (IOException ex) {
            Logger.getLogger(myMain.class.getName()).log(Level.SEVERE, null, ex);
        }

%>
Run Code Online (Sandbox Code Playgroud)

java import jsp

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

弹簧表单提交与minum样板

我一直试图弄清楚弹簧表单提交的最佳实践是什么,以及实现这一目标的最小样板是什么.

我认为以下是最佳实践特征

  • 启用验证并在验证失败时保留表单值
  • 禁用表单重新提交F5(即使用重定向)
  • 防止模型值出现在重定向(model.clear())之间的URL中

到目前为止,我已经想出了这个.

@Controller
@RequestMapping("/")
public class MyModelController {

    @ModelAttribute("myModel")
    public MyModel myModel() {
        return new MyModel();
    }

    @GetMapping
    public String showPage() {
        return "thepage";
    }

    @PostMapping
    public String doAction(
            @Valid @ModelAttribute("myModel") MyModel myModel,
            BindingResult bindingResult,
            Map<String, Object> model,
            RedirectAttributes redirectAttrs) throws Exception {
        model.clear();
        if (bindingResult.hasErrors()) {
            redirectAttrs.addFlashAttribute("org.springframework.validation.BindingResult.myModel", bindingResult);
            redirectAttrs.addFlashAttribute("myModel", myModel);
        } else {
            // service logic
        }
        return "redirect:/thepage";
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法用更少的样板代码来做到这一点,或者这是实现这一目标所需的最少代码量?

java spring spring-mvc boilerplate spring-web

10
推荐指数
1
解决办法
290
查看次数

Spring:hibernate + ehcache

我正在使用一个使用hibernate的spring项目,并期望使用ehcache实现二级缓存.我看到了很多方法:

  1. spring-modules-cache它引入了@Cacheable注释

  2. ehcache-spring-annotations一个旨在成为其继承者的工具集spring-modules-cache.

  3. Hibernate cache很好地集成到hibernate本身,以使用例如@Cache注释执行缓存.

  4. Programmatic cache使用代理.基于注释的配置很快变得有限或复杂(例如,几个级别的注释嵌套)

我个人认为spring-modules-cache不够彻底,因此我可能更愿意考虑更积极的发展ehcache-spring-annotations.Hibernate cache虽然似乎是最完整的实现(例如,读取和写入缓存等).

什么会激发使用哪个工具集?请分享您的缓存体验......

java spring caching hibernate ehcache

9
推荐指数
1
解决办法
9972
查看次数

计算和排序字符串数组的最佳方法是什么

我试图找到一个好的方法来搜索(计算出现次数),然后以有效的方式对String数组进行排序......这是一种在嵌入式系统中运行良好的方式(32Mb)

示例:我必须计算角色A,B,C等的使用时间,保存后验排序结果...

我可以使用公共int count(String searchDomain,char searchValue)方法进行计数,但每个字符串应该包含所有字母,例如:

"This is a test string"
A:1,B:0,C:0,D:0,E:1,I:3,F:0,...
"ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGGCCACGGCCACCGCTGCCCTGCC"
A:7,B:0,C:22,G:18
Run Code Online (Sandbox Code Playgroud)

我的排序方法需要能够回答以下事情:按As的数量排序,B先按As排序,然后按Bs排序该子域

这不适用于家庭作业,它适用于需要在手机上运行的应用程序,我需要高效,我目前的实现太慢并且使用太多内存.

java sorting data-structures

9
推荐指数
1
解决办法
2679
查看次数

带有JSON和XML的Spring REST

我想提供一个全面的REST API,支持JSONXML.

域模型是复杂的类型的,并且我们注意到,以产生友好JSONXML上使用相同的模型MappingJacksonHttpMessageConverterJaxbMarshaller分别往往给任一可读XML或JSON可读1) .

什么是最好的方法?

1)由于地图,根标签和关系等对象的建模方式与in json中的不同xml,因此需要对要序列化的对象进行不同的设计以使其既干净json又整洁xml.诸如jaxb注释之类的实用程序只能走得那么远.


我能想到几个候选人

1)创建json和xml控制器/模型

public class Controller { 
   public Foo foo() { 
       return new Foo(); 
   } 
}

public class XmlController extends Controller {
   @Override
   public XmlFoo foo() { 
       return new new XmlFoo(super.foo()); 
   } 
}

public class JsonController extends Controller {
   @Override
   public JsonFoo foo() { 
       return new JsonFoo(super.foo()); 
   } 
}
Run Code Online (Sandbox Code Playgroud)

给定一个模型对象 …

java rest spring json spring-mvc

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

java配置/参数传递设计

我经常发现需要设计具有可配置功能的对象.

举例来说,假设我正在创建一个DateIterator.可配置选项可能是迭代闭合间隔[start, end]还是开放端间隔[start, end).


  • (1)在我看来,不合理的解决方案 - 仅限于一个真/假配置选项
new DateIterator(boolean openInterval);
Run Code Online (Sandbox Code Playgroud)
  • (2)类型安全的枚举方式 - 通常有点笨重
new DateIterator(Interval.OPEN_END);
Run Code Online (Sandbox Code Playgroud)
  • (3)非传统的尝试 - 很好但不太直接
new DateIterator().openEnd();
Run Code Online (Sandbox Code Playgroud)
  • (4)继承方法 - 经常过度工程化
new OpenEndedDateIterator();
Run Code Online (Sandbox Code Playgroud)

为此我提出了一些我认为较差的替代方案,如基于整数的配置new DateIterator(Interval.OPEN_END);或基于属性的配置.

还有其他方法吗?您更喜欢哪种方法?

java configuration parameter-passing

8
推荐指数
1
解决办法
416
查看次数

JAXB泛型@XmlValue

目标是使用JAXB生成以下XML

<foo>
   <bar>string data</bar>
   <bar>binary data</bar>
</foo>
Run Code Online (Sandbox Code Playgroud)

是否有允许通用 @XmlValue字段的解决方法(我需要存储byte[]String数据)?以下是我的愿望:

@XmlRootElement
public class Foo {
    private @XmlElement List<Bar> bars;
}

@XmlRootElement
public class Bar<T> {
    private @XmlValue T value;  // (*)
}
Run Code Online (Sandbox Code Playgroud)

但我得到了这个例外

(*)IllegalAnnotationException:
@ XmlAttribute/@ XmlValue需要引用映射到XML文本的Java类型.

java xml generics jaxb marshalling

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

Enum in Annotations

我有一个我无法改变的注释,它需要两个String参数.

我想像这样使用它:

@RequestMapping( MyUrls.FOO.a, MyUrls.FOO.b )
Run Code Online (Sandbox Code Playgroud)

这就是我想象的实现方式

public enum MyUrls {
    FOO("a", "b"), 
    BAR("c", "d");

    public String a, b;
    MyUrls(String a, String b) {
        this.a = a;
        this.b = b;
    }
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为ab不能静态解决.

我有哪些替代品比以下更好:

class MyUrls {
    public static String FOO_A = "";
    public static String FOO_B = "";
    // ...
}
Run Code Online (Sandbox Code Playgroud)

java enums static annotations

8
推荐指数
1
解决办法
983
查看次数

如何在maven插件中下载依赖项?

什么是从一个Maven插件内下载远程Maven构件的最佳方式,同时还支持Maven的2.2.x1) ,3.0.x, 3.1.x和更新?

Aether似乎是一个很好的候选者,但它改变了包名称空间3.0.53.1破坏兼容性

周围有很多信息,

那么正确的,或者至少是有效的方法是什么呢?

1)如同@khmarbaise所指出的那样Maven 2.2.x是一个很好的EoL

java eclipse maven-plugin maven aether

8
推荐指数
1
解决办法
243
查看次数