- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Axon 框架,我可以在其中注释我的 域名 @Aggregate
的类(class)(使用 Spring 中的 @Component 进行元注释)。然后我必须通过标记 final
来为我拥有的每个私有(private)方法/字段道歉明确地。
我认为在我的情况下,我很擅长将类(class)标记为打开,所以我想手动进行,同时排除 @Aggregate
来自 spring
插件,但我找不到这样做的方法。
最佳答案
解决方法
根据documentation , spring
插件使用 all-open
只需列出 Spring 注释,同时支持元注释。所以,我们就是这样做的,但我们没有指定列表 @Component
,所以在我们的代码中,我们必须使用原型(prototype)(存储库、服务等)。这样它就不会接收 @Aggregate
:
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<configuration>
<compilerPlugins>
<!-- instead of 'spring' -->
<plugin>all-open</plugin>
</compilerPlugins>
<pluginOptions>
<!-- todo check up on https://stackoverflow.com/questions/56537496 -->
<!-- listing all spring annotations except @Component -->
<option>all-open:annotation=org.springframework.stereotype.Service</option>
<option>all-open:annotation=org.springframework.stereotype.Controller</option>
<option>all-open:annotation=org.springframework.data.repository.Repository</option>
<option>all-open:annotation=org.springframework.context.annotation.Configuration</option>
<option>all-open:annotation=org.springframework.boot.test.context.SpringBootTest</option>
<option>all-open:annotation=org.springframework.cache.annotation.Cacheable</option>
<option>all-open:annotation=org.springframework.transaction.annotation.Transactional</option>
<option>all-open:annotation=org.springframework.scheduling.annotation.Async</option>
</pluginOptions>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
</plugin>
关于kotlin - 如何从 Kotlin AllOpen 插件中排除注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56537496/
是否可以使用 kotlin-allopen gradle 插件通过 mockito 进行 android 测试? 我尝试将 kotlin-allopen 插件添加到我的 build.gradle 并定
我正在使用 Axon 框架,我可以在其中注释我的 域名 @Aggregate 的类(class)(使用 Spring 中的 @Component 进行元注释)。然后我必须通过标记 final 来为我拥
我正在尝试添加 allopen安卓插件。 我将此添加到我的 build.gradle(.) ext.kotlin_version = '1.3.61' classpath "org.jetbrains
我正在测试一个新的 kotlin-allopen和 kotlin-spring Kotlin 下的插件 1.0.6 . 在我的其中之一 @Transactional -带注释的类我有一个字段: @Jv
我是一名优秀的程序员,十分优秀!