小编div*_*eep的帖子

Class.newInstance()是否遵循"抽象工厂"设计模式?

我已经开始阅读Joshua Bloch的"Effective Java"(第二版).在阅读第2项时(在面对许多构造函数参数时考虑构建器),有一个特定的声明,即作者使用了Class.newInstance()方法.具体来说,作者说

Java中的传统抽象工厂实现一直是"类"对象,"newInstance"方法扮演"构建"方法的一部分.

这部分让我感到困惑 - 我对抽象工厂设计模式的理解是它用来代表工厂的工厂.该Class.newInstance()方法,在我看来,边框上的"静态工厂方法"编码理念(这顺便说一句,在同一本书第1项)以上

思绪,有人吗?我一直在努力克服一些艰难的采访,如果我的基本面在出现进行此类采访之前是稳固的话,我会非常感激.

谢谢.

java reflection builder java.lang.class

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

"git remote add"究竟做了什么?

我最近在一个我开始研究的项目中被介绍给git,这鼓励我开始阅读Scott Chacon的在线版"Pro Git".

本书中有一节简要介绍了添加"远程存储库"的主题.由于Git是一个分布式SCM,我知道使用GIT的一个常见情况是"克隆"本地计算机上的远程存储库并处理本地副本.完成更改并将所有更改提交到本地副本后,您可以将更改"推送"到远程存储库,以便其他人也可以查看您的更改.

这让我想到了我的问题 - 从我的理解,"git remote add"有效地"添加了"一个远程存储库作为我们以后可以使用的简写符号.我不明白的是 - 因为我只通过指定一个存储库URL进行克隆,如何在本地项目的目录下添加多个存储库URL?

确切地说,假设我使用了Apache commons-lang项目

git clone git://git.apache.org/commons-lang.git
Run Code Online (Sandbox Code Playgroud)

这导致GIT复制我名为"commons-lang"的本地目录中的整个项目.由于我只使用了一个网址进行克隆,所以做"远程添加"的意思是什么?这是否意味着同一个项目(commons-lang)可以托管在多个服务器上,还是我可以通过添加新的远程地址来克隆本地项目中的新项目?

为这个问题的初学者语气道歉.试图让我的事实彻底失败.谢谢.

git version-control

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

ResultSet.TYPE_SCROLL_SENSITIVE的行为

ResultSet对类型的行为感到困惑TYPE_SCROLL_SENSITIVE.

我对此的理解是:

  1. 我执行一个select查询,返回一个结果集.我打印出第一行中特定列的值.
  2. 然后我执行Thread.sleep(10000),暂停程序10秒钟.
  3. 当程序处于休眠状态时,我手动对数据库中的同一列进行更新(通过SQL提示符).
  4. 10秒后,我再次打印结果集第一行中相同列的值.

在步骤4中,我希望打印的列值与步骤1中打印的值不同.但我总是得到相同的值(即使我ResultSet的类型SCROLL_TYPE_SENSITIVE).

我在这里误解了什么吗?

以下是我使用的代码.

private void doStuff() throws Exception
{
    final String query = "select * from suppliers where sup_id=420";

    Statement stmt = this.con.createStatement(
        ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

    ResultSet rs = stmt.executeQuery(query);

    rs.next();

    System.out.println("City : " + rs.getString("city"));

    Thread.sleep(10000); // While this executes, I do a manual update !

    System.out.println("City : " + rs.getString("city"));
}
Run Code Online (Sandbox Code Playgroud)

java jdbc resultset

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

使用假定的角色模拟主要策略

我想知道如何simulate-principal-policy将 AWS CLI 用于代入角色。

为了提供一些上下文,作为我的应用程序启动的一部分,我想确保应用程序具有访问它需要的所有 AWS 资源的必要权限。我通过获取调用者身份aws sts get-caller-identity并使用返回的调用者身份作为simulate-principal-policy请求的策略源来实现这一点。

当我们的应用程序在 EC2 上运行时,它使用一个假定的角色。所以,get-caller-identity返回一个假定的角色 arn。

如果我尝试simulate-principal-policy使用我的用户 arn 作为策略源 arn 执行,则该命令可以正常工作。

aws iam simulate-principal-policy --action-names "sqs:Receivemessage" --policy-source-arn "arn:aws:sts::123456789021:user/divesh"
Run Code Online (Sandbox Code Playgroud)

但是,尝试使用假定的角色执行上述命令会报告错误。

aws iam simulate-principal-policy --action-names "sqs:Receivemessage" --policy-source-arn "arn:aws:sts::123456789021:assumed-role/development/development-session"
An error occurred (InvalidInput) when calling the SimulatePrincipalPolicy operation: Invalid Entity Arn: arn:aws:sts::123456789021:assumed-role/development/development-session does not clearly define entity type and name.
Run Code Online (Sandbox Code Playgroud)

我们的应用程序在 Kubernetes 集群上运行,并使用kiam将 IAM 角色与 Pod 相关联。

amazon-web-services aws-iam

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

web.xml中的错误代码映射无法正常工作

我创建了一个简单的Web应用程序,我希望所有带有404状态代码的响应都被重定向到我的web-app中的错误页面.

我在我的web.xml文件中包含以下条目.

<error-page>
    <error-code>404</error-code>
    <location>/error.html</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

在我的主servlet中,我发回404状态代码(使用HttpServletResponse.sendError()).但是,我仍然会看到404 Not Found页面(而不是我的错误页面).

任何想法为什么会发生这种情况?

tomcat servlets java-ee

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