小编Wou*_*ens的帖子

iText - 将内容添加到现有PDF文件

我想用iText做以下事情:

(1)解析现有的PDF文件

(2)在文档的现有单页上添加一些数据(例如时间戳)

(3)写出文件

我似乎无法弄清楚如何用iText做到这一点.在伪代码中,我会这样做:

Document document = reader.read(input);
document.add(new Paragraph("my timestamp"));
writer.write(document, output);
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,iText的API非常复杂,我无法绕过它.PdfReader实际上保存文档模型或其他东西(而不是吐出文档),你需要一个PdfWriter来读取它的页面......呃?

java pdf itext

46
推荐指数
4
解决办法
13万
查看次数

.bss段零初始化变量是否占用了elf文件中的空间?

如果我理解正确,.bssELF文件中的部分用于为零初始化变量分配空间.我们的工具链生成ELF文件,因此我的问题是:该.bss部分实际上是否必须包含所有这些零?这似乎是一种非常浪费的空间,比如说,当我分配一个全局的10兆字节数组时,它会在ELF文件中产生10兆字节的零.我在这看错了什么?

c++ storage elf segments

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

Java中可用的最佳可调整大小的循环字节缓冲区是什么?

我需要Java中的字节缓冲类来实现单线程使用.我应该能够在缓冲区的后面插入数据并在前面读取数据,摊销成本为O(1).缓冲区应该在它满时调整大小,而不是抛出异常或其他东西.

我自己可以写一个,但如果在标准的Java包中不存在,我会感到非常惊讶,如果没有,我希望它存在于一些经过良好测试的公共库中.

你会推荐什么?

java buffer byte

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

我可以从IP地址获得哪些信息?

如果您有一组计算机的IP地址(在LAN中),可以从中推断出哪些其他信息?例如,有没有办法找出每个IP背后的计算机运行的操作系统?

ip operating-system lan ip-address

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

扩展富域模型

Domain Driven Design鼓励您使用丰富的域模型.这意味着所有域逻辑都位于域模型中,并且域模型是最重要的.持久性成为一个外部问题,因为域模型本身理想上不知道持久性(例如数据库).

我一直在实践中使用这个中型单人项目(超过100k的Java系列),我发现了许多优点,主要是它提供的灵活性和可重构性,而不是面向数据库的方法.我可以添加和删除域类,点击几个按钮,然后推出一个完整的新数据库模式和SQL层.

但是,我经常遇到一些问题,我发现很难将富域逻辑与支持应用程序的SQL数据库进行协调.通常,这会导致典型的"1 + N查询问题",您可以在其中获取N个对象,然后对每个再次触发查询的对象执行一个非平凡的方法.手动优化它允许您在恒定数量的SQL查询中执行该过程.

在我的设计中,我允许一个系统插入这些优化版本.我这样做是通过将代码移动到一个"查询模块",其中包含许多特定于域的查询(例如getActiveUsers),其中我都有内存(天真且不可扩展)和基于SQL(用于部署)的实现.这允许我优化热点,但有两个主要缺点:

  • 我正在将我的一些域逻辑有效地移动到它不属于的地方,实际上甚至将它推入SQL语句中.
  • 这个过程要求我仔细阅读查询日志以找出热点所在的位置,然后我必须重构代码,通过将其降低为查询来减少其级别抽象.

是否有一种更好,更清晰的方法来协调Domain-Driven-Design及其Rich Domain Model,因为您不能将所有实体都放在内存中,因此仅限于数据库后端?

domain-driven-design scalability model

11
推荐指数
2
解决办法
1463
查看次数

Spring MVC @ExceptionHandler中的模型填充

有没有办法让我的@ExceptionHandler方法可以访问由@RequestMapping触发相关异常的方法填充的模型属性?

或者,更具体地说是我的问题:传递给我的视图的模型有一些填充的数据@ModelAttribute(例如用户帐户的详细信息)方法,我希望这些也可以在我的@ExceptionHandler方法中设置.

例如,由于我的错误视图页面使用与其他页面相同的标题和菜单,我想显示当前用户名(以及其他信息,例如未读消息的数量等).

我知道@ExceptionHandler存在于@Transaction(因为它应该!)之外,所以我显然不能只(并且不想)再次运行一些查询.相反,我想预先填充ModelMapor ModelAndView或者其他任何东西,并确保异常处理程序得到它 - 或者至少在渲染视图时使模型数据可用.

我希望这个问题有道理,我是Spring MVC的新手,所以我可能会在这里和那里混合一些概念......

java spring exception-handling spring-mvc

9
推荐指数
2
解决办法
4824
查看次数

Angular2 - @HostListener('focus')不起作用

我正试图通过@HostListener捕捉焦点事件.但它对我来说效果不佳.

我在下面看了一篇文章.

使用角度2的HTML5事件处理(onfocus和onfocusout)

还看到文章上出现了一个羽毛球.

http://plnkr.co/edit/0K1nxX2ltZ4ztfe5uJ6E?p=preview

它对我有用.但是我把它改成了如下,那就不行了.

@Component({
    selector: 'my-app',
    template: `<input name="date" type="text" (focus)="focusFunction()" (focusout)="focusOutFunction()">` 
})
export class App {
    @HostListener('focus', ['$event.target'])
    onFocus(target: any) 
        console.log("Focus called from HostListener");
        target.type = 'date';
    }
    @HostListener('focusout', ['$event.target'])
    onFocusout(target: any) {
        console.log("Focus out called from HostListener");
        target.type = 'text';
    }

    focusOutFunction(){
        console.log("Focus out called");
    }
    focusFunction(){
        console.log("Focus called");
    }
}
Run Code Online (Sandbox Code Playgroud)

关于焦点,他们都被称为.但焦点(focusin)仅适用于focusFunction,而不适用于onFocus @HostListener.

如何@HostListener使用焦点事件进行工作?

angular

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

确定三角测量后二维三角形的缠绕

我正在使用效果很好的三角测量代码(它处理带孔的多边形并与JTS集成)但显然它不尊重三角形的缠绕.一些输出三角形以一种方式缠绕,一些以另一种方式缠绕.

我有可能确定并纠正这些异常三角形的缠绕吗?可能使用来自相邻三角形的信息,但当然越简单越好.

algorithm geometry triangulation computational-geometry

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

使用注解将所有返回的元素放入 Spring-Boot 缓存中

使用spring-boot及其缓存机制,是否可以自动将所有作为集合返回的实体一一存储到缓存中?

例如图片下面的 Repository 方法:

@Query("...")
List<Foo> findFooByBar(Bar bar);
Run Code Online (Sandbox Code Playgroud)

我想将它们一个接一个地插入到 Spring Cache 中,这意味着会有 N 个插入(列表中的每个元素一个)而不是一个(整个列表)。

例子:

@Query("...")
@CachePut(value = "foos", key = "result.each.id")
List<Foo> findFooByBar(Bar bar);
Run Code Online (Sandbox Code Playgroud)

java caching annotations spring-boot spring-cache

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

java中操作系统的名称(不是"os.name")

我想知道如何掌握jvm运行的那种操作系统.它也必须是"安全的",所以System.getProperty("os.name")不是一个真正的选择,因为它可以通过-D指令轻易绕过.

通过"安全",我的意思是不容置疑.它适用于桌面应用程序.用户总是可以对代码进行反混淆,反编译,编辑和重新编译,但这比将-D传递给jvm要困难得多.我们想要修补不平凡,而不是不可能(因为那是不可能做到的).

java operating-system jvm runtime.exec

4
推荐指数
3
解决办法
8954
查看次数