小编ams*_*ams的帖子

为什么两次压缩相同的内容会产生两个不同SHA1的文件?

我遇到了一个git和zip文件的奇怪问题.我的构建脚本需要一堆文档html页面并将它们压缩成docs.zip然后我将此文件检入git.

我遇到的问题是每次我重新运行构建脚本并获得一个新的zip文件时,新的zip文件具有与上一次运行不同的SHA1.我的构建脚本正在调用ant zip任务.然而,如果我将同一目录压缩两次,那么从Mac OS X shell手动调用macOSX zip会给我一个不同的sha1.

运行1:

zip foo.zip *
openssl sha1 foo.zip 
rm foo.zip 
Run Code Online (Sandbox Code Playgroud)

运行2:

zip foo.zip *
openssl sha1 foo.zip
Run Code Online (Sandbox Code Playgroud)

运行1和run2给出不同的SHA1,即使内容在运行之间没有变化.在这两种情况下,zip都会打印出完全相同的压缩文件,但并不表示任何特定于操作系统的文件(如.DS_Store)都包含在zip文件中.

zip算法是否具有确定性?如果在相同的内容上运行它会产生完全相同的位吗?如果不是为什么不呢?

我有哪些选择以确定的方式压缩文件?压缩文件中有数千个,我不希望这些文件发生太大变化.我知道git会压缩你检查的任何文件,但拉链它们的动机就是保持它们的质量不受影响.

git ant zip gzip sha

17
推荐指数
3
解决办法
4704
查看次数

为什么@Transactional(propagation = Propagation.SUPPORTS,readOnly = true)修复了Hibernate延迟加载异常?

我使用AspectJ加载时间编织切换到我正在使用的应用程序,使用Spring CGlib代理,在我做了之后,我开始得到hibernate延迟加载异常的代码的许多部分,在过去没有例外是抛出.

我已经能够通过添加@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)一堆以前没有任何事务属性的公共方法来解决这些延迟加载异常,但是调用spring存储库来从数据库中读取数据.

任何人都知道为什么添加会@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)消除hibernate延迟加载异常以及为什么这些注释不需要使用AspectJ加载时间编织但是是否需要输出?

更新2 我相信删除AspectJ不是问题,但问题是我并不真正了解SUPPORTS传播的实际行为.特别是SUPPORTS如何与JPA EntityManager交互,因此我删除了一堆SUPPORTS传播,导致延迟加载异常.在阅读了Spring事务管理器的源代码之后,一切都变得清晰了.Spring文档没有真正指出的关键思想是@Transactional注释被用作将EntityManager的生命周期与事务方法的开始和结束联系起来的同步点.同时强烈推荐这一系列文章,网址http://www.ibm.com/developerworks/java/library/j-ts1/,此博客文章http://doanduyhai.wordpress.com/2011/11/21/spring- persistencecontext解释的/

更新1

这不是调用不通过AOP代理的私有@Transactional方法的情况.这些问题发生在从其他服务调用的公共方法中.

这是代码结构的一个例子,我看到问题发生了.

@Service
public class FooService 
{
   @Autowired
   private BarService barService;

   public void someMethodThatOnlyReads() {
      SomeResult result = this.barService.anotherMethodThatOnlyReads()

      // the following line blows up with a HibernateLazyLoadingEcxeption 
     // unless there is a @Transactional supports annotation on this method
      result.getEntity().followSomeRelationship(); 
    }

}

@Service
public class BarService 
{
   @Autowired
   private BarRepository barRepo; …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate

17
推荐指数
2
解决办法
8454
查看次数

如何从ANT执行JAXB编译器

我在一个项目上使用JAXB.JAXB的吸引力在于它与JDK捆绑在一起,我一直在命令行上使用xjc.exe从模式生成.java文件.我似乎无法找到JAXB ant任务,确定在http://jaxb.java.net上有一个下载但是我想使用捆绑到JDK中的JAXB是否有某种方法可以从Ant调用JAXB class是否调用了xjc.exe?

java ant jaxb jaxb2

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

不完全支持使用类型test-jar对项目foo的依赖性.

在我的maven项目中,我使用的是类型为test-jar的依赖项,m2e不喜欢并给出以下警告.

"不完全支持使用类型test-jar对项目foo的依赖性.可能会出现类路径和/或部署问题.尝试使用Maven->禁用工作区"

为什么会出现此问题以及为什么禁用工作区解析会解决此问题?

eclipse maven m2e

16
推荐指数
1
解决办法
4881
查看次数

在 Kubernetes 中向 ServiceAccount 添加密钥有什么作用?

我正在阅读有关身份验证的 tekton文档,它解释了进行身份验证需要两件事

创建一个秘密文档,下面给出示例

apiVersion: v1
kind: Secret
metadata:
 name: basic-user-pass
 annotations:
   tekton.dev/git-0: https://github.com # Described below
type: kubernetes.io/basic-auth
stringData:
 username: <username>
 password: <password>
Run Code Online (Sandbox Code Playgroud)

将秘密对象添加到服务帐户

apiVersion: v1
kind: ServiceAccount
metadata:
 name: build-bot
secrets:
 - name: basic-user-pass
Run Code Online (Sandbox Code Playgroud)

我对 k8s 中服务帐户的心理模型是,它是用于访问 k8s API 服务器的 JWT。我不明白向 ServiceAccount 添加秘密有什么意义,如何以及为什么使用它。

问题:

  • 对于服务帐户添加机密意味着什么?
  • 为什么向服务帐户添加机密很有用?
  • 为什么 tekton 要求将密钥添加到服务帐户?
  • 谁/什么查看服务帐户机密列表?

kubernetes tekton

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

如何让Spring打印出通过组件扫描获取的bean定义?

我有一个配置为组件扫描的弹簧应用程序,是否有一个标志或选项,我可以打开,这将导致spring打印出spring框架扫描程序选择的类的完全限定名称?

java spring dependency-injection

15
推荐指数
1
解决办法
4759
查看次数

初始化或不初始化JPA关系映射?

在一对多的JPA协会中,它被认为是初始化与空集合的关系的最佳实践?例如.

@Entity
public class Order { 

   @Id
   private Integer id;

   // should the line items be initialized with an empty array list or not?
   @OneToMany(mappedBy="order")
   List<LineItem> lineItems = new ArrayList<>();

}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,最好lineItems使用默认值为空来定义ArrayList?优缺点都有什么?

java hibernate jpa openjpa eclipselink

15
推荐指数
1
解决办法
5577
查看次数

在Java Web应用程序的飞行LESS编译器?

我正在寻找一种在开发过程中根据需要在服务器端编译CSS LESS文件的方法.例如,如果浏览器向/assets/css/foo.css发出请求,我希望服务器注意到存在/assets/css/foo.less文件,然后编译该文件并返回生成的css.我猜在某个地方必须有一个可以做到这一点的无法使用的servlet?

我正在使用Spring MVC应用程序运行tomcat 7

如何配置Java Web App即时编译?

css java servlets java-ee less

14
推荐指数
3
解决办法
6357
查看次数

如何在Servlets 3.x中以编程方式设置<security-constraint>?

在我当前的Web应用程序中,我试图摆脱web.xml,但我无法正确设置强制所有对应用程序的请求使用HTTPS的安全约束.

<security-constraint>
  <web-resource-collection>
     <web-resource-name>all</web-resource-name>
     <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <user-data-constraint>
     <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)

如何在servlet 3.x配置代码中执行相同操作的上述web.xml配置代码段?

UPDATE

我希望约束应用于应用程序中的每个servlet,过滤器和静态资源,到目前为止我在网上看到的示例显示将安全约束附加到servlet,但我希望将安全约束附加到Web应用程序.在上面的xml片段中,您会看到它没有引用任何特定的servlet

java servlets servlet-3.0

14
推荐指数
1
解决办法
6598
查看次数

IntelliJ Build> Rebuild Project是否会调用maven?

在IntelliJ 14.1中Build > Rebuild Project,为maven项目调用时会发生什么.

  • 它调用mvn编译吗?
  • 它是否独立于maven做了什么?

我试图测试这个,当我点击时我Build > Rebuild Project看不到任何控制台输出指示maven正在运行,如果我从maven项目视图运行maven我得到maven输出.

那么IntelliJ Build > RebuildProject和构建工具之间的关系到底是什么maven / gradle / ant

java intellij-idea maven

14
推荐指数
1
解决办法
3392
查看次数