如果这是一个基本问题,我很抱歉,但我对使用 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) 我们最近开始使用 Cypress 进行带有 Angular 6 UI 的 E2E 测试。事实证明它很棒,而且在我们看来,它比 Protractor 好用得多。
我们的计划是模拟与服务器的所有交互。对于使用 cy.route() 和夹具的所有 REST/XHR 调用来说,这很容易。
但是,我们也使用网络套接字。事实证明,嘲笑与它的交互并不那么容易。
从我迄今为止所做的研究来看,我能找到的唯一建议是使用 cy.stub()。这在原则上听起来不错,但我找不到对此的任何详细说明,最好是一些使用它来模拟 Web 套接字的示例。
我认为可能有效的另一种方法是使用 Angular 的 TestBed 服务。注入我们自己的服务来处理我们与 Web 套接字的交互。
但是,其中任何一条都是正确的路线吗?任何人都可以提供任何应该做的最佳方式的例子吗?
任何让我朝着正确方向前进以帮助我入门的指示将不胜感激。谢谢。
使用 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
?
当在 AWS CodeComimit 中创建或更新拉取请求时,我使用 AWS Lambda 函数在 AWS CodeBuild 中启动构建,效果良好。
但是,我希望能够阻止将该拉取请求合并到存储库的主分支中,直到该 PR 的最新构建成功完成。
有谁知道是否有一种方法可以在AWS中完成?例如,合并按钮被禁用或不可用,比如没有获得足够的批准者?