我们计划将我们的pdf生成实用程序从iText迁移到PDFBox(由于iText中的许可问题).通过一些努力,我能够编写和定位文本,绘制线条等.但是创建表格中嵌入文本的表格是一个挑战,我通过文档,示例,Google,Stackoverflow找不到任何东西.想知道PDFBox是否为创建带有嵌入文本的表提供本机支持.我的最后一招是使用此链接https://github.com/eduardohl/Paginated-PDFBox-Table-Sample
首先感谢Lombok,我们的Java代码现在更加流畅和清洁.我的用例是我想创建一个不可变的类.为此我会使用@Value注释.另外我想使用构建器功能,因为我会使用@Builder注释.我的问题是,如果我们可以在一个类上同时使用@Builder和@Value.这是Lombok用户/开发人员推荐的好习惯.
我使用gradle示例在springboot springmvc之后创建了一个简单的spring mvc应用程序.
以下是结构.src/main/java - 这是所有代码库的所在.src/main/resources - 这是所有资源/模板的所在.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
只需编写上面的类和零配置,我就可以启动我的spring-mvc Web应用程序(非常酷).(通过命令gradlew build和gradlew bootrun)但是来自传统的Web应用程序开发和部署背景,我想知道如何创建一个war文件并将其部署到tomcat webapps文件夹中.
此外,在哪里保留所有新资源(如js文件,CSS等).我们通常会有一个WEB-INF文件夹,我们会保留它们,但是这里要做什么.
这是我们的用例。我们正在从数据库加载 freemarker 语法并对其进行处理。我们正在处理近一百万条记录。一切正常。但是当我分析应用程序时,我发现我的 freemarker 处理方法是瓶颈,并且花费了大部分时间。阅读了 freemarker 文档后,我得到了一些关于我的问题的提示。每次我进行处理时,我都会创建新的 freemarker.template.Template 对象(创建它似乎很昂贵)。我找不到这样做的正确/更有效的方法。
Run Code Online (Sandbox Code Playgroud)public FTLTemplateEngine() { cfg = new Configuration(); } public String process(String template, Map<String, Object> input) throws IOException, TemplateException { String rc = null; final Writer out = new StringWriter(); try { final Template temp =new Template("TemporaryTemplate", new StringReader(template), cfg); temp.process(input, out); } catch (InvalidReferenceException e) { log.error("Unable to process FTL - " + template); throw new InvalidReferenceException("FTL expression has evaluated to null or it refers to something that doesn't exist. - …
在最近对我们的 Java Web 应用程序进行安全扫描时,我们发现了 CSRF 漏洞。我知道对于使用 Spring Security 之类的安全框架的较新应用程序,我们可以轻松地为每个表单添加一个隐藏的输入并进行其他所需的配置,这将解决问题。
<input type="hidden"
name="${_csrf.parameterName}"
value="${_csrf.token}"/>
Run Code Online (Sandbox Code Playgroud)
但是我们的应用程序仍然使用 acegi-security (1.0.2) 并且有 100 多个用 JSP 编写的表单。在所有这些表单上添加输入类型隐藏的 csrf 令牌似乎非常乏味。有没有更聪明的方法来保护我的应用程序而无需所有这些艰苦的工作。
我在 docker 中创建了一个镜像。在其中安装了 Ubuntu、JDK 和其他几个库。然后我退出容器并做了这样的提交
docker commit a7b95082f6ea anil-ubuntu
Run Code Online (Sandbox Code Playgroud)
我再次启动容器
docker run -p 5901:5901 -t -i anil-ubuntu
Run Code Online (Sandbox Code Playgroud)
这次我安装了 gradle 和其他几个库。然后退出容器并再次提交。
docker commit a7b95082f6ea anil-ubuntu
Run Code Online (Sandbox Code Playgroud)
每次我进行提交时,都会创建一个新图像,并保留带有存储库和标签的旧图像。按照这个工作流程,很快我就会用完空间。这是使用 docker 的正确方法吗?我如何确保所有这些图像都消失。
我在 Windows 10 上使用 docker 版本 18.09.1 桌面
最近我们升级到 Freemarker 2.3.22。我们在我们的产品中多次实现了 TemplateMethodModel 接口。现在我们收到有关 TemplateMethodModel 已弃用的警告,并考虑使用 TemplateMethodModelEx。
是否有任何特定的事情可以仅使用 TemplateMethodModelEx 完成?
java ×5
freemarker ×2
csrf ×1
docker ×1
lombok ×1
pdf ×1
pdfbox ×1
spring-boot ×1
spring-mvc ×1
tomcat ×1