小编eeb*_*sie的帖子

Spring - 来自另一个项目或 jar 的线组件

如果这是一个基本问题,我很抱歉,但我对使用 Spring 还很陌生。

我在 Eclipse 中设置了 2 个 maven 项目,都使用 Spring。我希望一个项目在另一个项目中使用 Spring @Service。我试图通过使用 @Resource 注释来注释成员变量来做到这一点。我在 pom.xml 中添加了对另一个项目的依赖。

但是,当运行这个 Spring 时,没有找到我想在另一个项目中使用的类。为了让 Spring 在另一个项目中找到对象,我还需要做些什么吗?当所有代码都在一个项目中时它工作正常,所以我需要告诉它以某种方式扫描另一个项目吗?

我试过添加 @ComponentScan() 但这没有帮助。

编辑:回答人们对我的问题提出的问题。如果我对 Spring 做一些根本性的错误或者这是基本的东西,再次道歉。

因此,我有 2 个 Maven 项目,它们都是使用 Spring Tool Suite 作为 Spring Starter Projects 创建的。但是,Web 项目也不是,一个是命令行工具,另一个是该工具和其他项目使用的库。因此,两者都被创建为 JAR 文件。

该工具在 pom.xml 中依赖于作为库的项目。它构建得很好,我可以让 Maven 为它创建一个 JAR 文件等等。因为它们都是 Maven 项目,所以它们都具有标准的 Maven 文件结构,其中包含我在“src/main/java”中的一个包中的 Java 代码。

该工具运行使用:

SpringApplication.run(Application.class, args);
Run Code Online (Sandbox Code Playgroud)

当我连接在一起的所有类都在同一个项目中时,这很好用。现在我已经将其中一些类移到另一个项目中,它不再找到它们。

接下来,我目前只使用Java注解来配置spring,而不是XML。所以我没有 XML:

<context:annotation:config/>
Run Code Online (Sandbox Code Playgroud)

出现在任何地方。是否需要此 XML 来实现我想在这里做的事情?

最后,这是我得到的堆栈跟踪:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'application': Injection …
Run Code Online (Sandbox Code Playgroud)

java eclipse spring maven

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

E2E Angular 6 websocket 模拟

我们最近开始使用 Cypress 进行带有 Angular 6 UI 的 E2E 测试。事实证明它很棒,而且在我们看来,它比 Protractor 好用得多。

我们的计划是模拟与服务器的所有交互。对于使用 cy.route() 和夹具的所有 REST/XHR 调用来说,这很容易。

但是,我们也使用网络套接字。事实证明,嘲笑与它的交互并不那么容易。

从我迄今为止所做的研究来看,我能找到的唯一建议是使用 cy.stub()。这在原则上听起来不错,但我找不到对此的任何详细说明,最好是一些使用它来模拟 Web 套接字的示例。

我认为可能有效的另一种方法是使用 Angular 的 TestBed 服务。注入我们自己的服务来处理我们与 Web 套接字的交互。

但是,其中任何一条都是正确的路线吗?任何人都可以提供任何应该做的最佳方式的例子吗?

任何让我朝着正确方向前进以帮助我入门的指示将不胜感激。谢谢。

websocket angular angular-e2e cypress angular6

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

开玩笑:模块“DynamicTestModule”导入了意外值“NgxsRootModule”。请添加@NgModule注释

使用 Angular 13 在 Jest 中运行测试时出现以下错误:

 Unexpected value 'NgxsRootModule' imported by the module 'DynamicTestModule'. Please add an @NgModule annotation.

      41 |
      42 |   beforeEach(() => {
    > 43 |     fixture = TestBed.createComponent(MyComponent);
Run Code Online (Sandbox Code Playgroud)

beforeEach这似乎与我拥有的这个块有关:

beforeEach(
    waitForAsync(() => {
      TestBed.configureTestingModule({
        imports: [
          FormComponentsModule,
          MatButtonModule,
          NoopAnimationsModule,
          ReactiveFormsModule,
          RouterTestingModule,
          MatSnackBarModule,
          MatIconModule,
          MatCardModule,
          NgxsModule.forRoot([])
        ],
        declarations: [MyComponent],
        schemas: [NO_ERRORS_SCHEMA],
        teardown: { destroyAfterEach: false }
      }).compileComponents();
    })
  );
Run Code Online (Sandbox Code Playgroud)

但如果我删除该部分,它就会以同样的方式forRoot([])抱怨。NgxsModule

这在 Angular 11 和 12 上也可以正常工作。只是自从升级到 Angular 13(需要将 Jest 升级到最新版本)后才出现这个问题。

有谁知道为什么现在不喜欢使用它NgxsRootModule

jestjs ngxs angular13

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

AWS CodeCommit 阻止合并,直到成功构建

当在 AWS CodeComimit 中创建或更新拉取请求时,我使用 AWS Lambda 函数在 AWS CodeBuild 中启动构建,效果良好。

但是,我希望能够阻止将该拉取请求合并到存储库的主分支中,直到该 PR 的最新构建成功完成。

有谁知道是否有一种方法可以在AWS中完成?例如,合并按钮被禁用或不可用,比如没有获得足够的批准者?

amazon-web-services aws-lambda aws-codecommit aws-codebuild

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