我目前正在开发一个尽可能尊重六边形架构原则的应用程序。
因此,我的“域”模块(组Id:acme
; 工件Id:我的域
)不依赖于任何技术框架。
我的所有服务都使用自定义注释(本身是我域的一部分)进行注释:
package acme.domain;
@Target({ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface DomainService {
}
然而,在我的“Quarkus应用”模块(groupId:< code > acme ;artifact id:< code > app-quar kus ,我需要注入我的“域”模块中定义的服务(< code>acme:domain)。
使用SpringBoot,使用以下注释注入这些域服务(基于自定义注释)非常容易:
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
@SpringBootApplication
@ComponentScan(
basePackageClasses = {CourtageSpringbootApplication.class, DomainService.class},
includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, value = {DomainService.class})}
)
public class MySpringbootApplication {
}
有没有与Quarkus相当的@ComponentScan
?
注意:我在应用程序Quarkus/src/主/资源/应用程序属性
中添加了以下行,但它不起作用:
quarkus.index-dependency.courtage.group-id=acme
quarkus.index-dependency.courtage.artifact-id=my-domain
抛出异常:javax.enterprise.inject.UnsatisfiedResolutionException
首先,我个人会考虑在您的域模块中严格避免CDI注释,这有点过分了。但如果你真的想要,我可以看到两种选择:
>
您可以限制自己只在自己的注释上放置CDI注释,并使用@Stereotype
。例如,如果您的@DomainService
应等同于@ApplicationScoped
,则可以这样声明:
@Stereotype
@ApplicationScoped
@Target({ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface DomainService {
}
如果您绝对坚持在域模块中不应该出现CDI注释,那么您可以创建一个Quarkus扩展,将< code>@DomainService注册为自定义bean定义注释。Quarkus CDI集成指南对此有更详细的介绍:https://quarkus.io/guides/cdi-integration您可以使用< code > autoaddscobebuilditem 或< code > beandefingannotationbuilditem 。
我已经用自定义注释注释了Spring bean,但似乎Spring在创建bean后删除了我的自定义注释。 第二步不行,我的自定义注释丢失了。(可能是到期的代理文件) 我的豆子 我的一个自定义注释的示例 findAndDoStuffWithAnnotatedThings Bean中出错的内容被传递到一个类,在该类中,我的自定义注释得到验证,但我的验证程序找不到任何注释。(Util使用isAnnota
我看了堆栈交换和Spring示例网站上的每个示例,一切似乎都应该有效。我一定错过了一些简单的东西 我有一个自定义注释,理想情况下,如果类被注释,我希望将其应用于类的所有方法,或者应用于任何注释的方法。以下是方面、测试和代码: 注释 方面 测验 后果 链接 实际来源
我有一个自定义注释如下。 一个版本的条件是, 在我的豆子注释中, 也有单版本匹配的bean,喜欢 我想验证从属性文件到可用的Beans支持版本的userInput版本。不确定,我如何获取值,迭代并与userInoutVersion进行比较。值可以是8或{6,7}作为int数组。不确定,我如何迭代该值以检查是否有任何值与输入版本匹配。 最终列表apiVersions=属性。获取(“价值”)。stre
问题内容: 我正在从DropWizard 0.7.1迁移到0.8.1的过程中。这包括从Jersey 1.x迁移到2.x。在使用Jersey 1.18.1的实现中,我实现了(为简单起见,更改了所有类名)。此类将创建包含自定义注入批注的对象。包含传递并由读取的各种属性。最后,在该类中,我注册的新实例,如下所示。 我已经进行了一些研究,似乎无法完全围绕如何在Jersey 2.x中创建(或替换)这样的se
问题内容: 使用基于注释的配置(等)是否可以实现相同的bean继承? http://docs.spring.io/spring/docs/4.1.0.BUILD-SNAPSHOT/spring-framework- reference/htmlsingle/#beans-child-bean- definitions 问题答案: java config中没有抽象bean的概念,因为Java语言已经
使用基于注释的配置(等)是否可以实现相同的bean继承? http://docs.spring.io/spring/docs/4.1.0.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#beans-child-bean-definitions