具有自动配置的自定义 Micronaut module/jar
Custom Micronaut module/jar with auto-configurations
无法找到如何使用自动配置编写自己的 modules/libs 的正确工作示例。
有人可以解释一下如何为 micronaut 应用程序编写正确的模块吗?
尝试加载 @Factory
class 并添加 package-info.java
和 @Configuration
注释,但这没有帮助。还像这样在 class 中添加适当的包进行扫描 Micronaut.build(args).packages("com.mypackage").start()
样本:
package com.mypackage;
public class FooService {
public void bar() {
}
}
package com.mypackage;
import io.micronaut.context.annotation.Bean;
import io.micronaut.context.annotation.Factory;
import javax.inject.Singleton;
@Factory
public class FooFactory {
@Bean
@Singleton
public FooService fooService() {
return new FooService();
}
}
//com.mypackage.package-info.java
@Configuration
package com.mypackage;
import io.micronaut.context.annotation.Configuration;
我从车把视图中学到了很多东西 renderer。
对于 bean 中的配置,您需要:
- 为您的配置选项创建一个带有 getter 的接口。
- 创建它的实现。最后,在你的 bean 的构造函数中,
- 将配置界面添加为参数。
当 Micronaut 创建你的 bean 时,它会读取 application.yml 文件并在你的配置 impl class 中设置值。然后它将使用配置值作为参数构建您的 bean。
实际问题出在 Maven 中。
Micronaut 注释处理器未由 maven-compiler-plugin
触发。
解决方案是在 maven-compile-plugin 中配置注释处理器:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${maven-compiler-plugin.source}</source>
<target>${maven-compiler-plugin.target}</target>
<encoding>${maven-compiler-plugin.encoding}</encoding>
<annotationProcessorPaths>
<!-- uncomment if you are using lombok -->
<!-- path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path -->
<path>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-inject-java</artifactId>
<version>${micronaut.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
无法找到如何使用自动配置编写自己的 modules/libs 的正确工作示例。
有人可以解释一下如何为 micronaut 应用程序编写正确的模块吗?
尝试加载 @Factory
class 并添加 package-info.java
和 @Configuration
注释,但这没有帮助。还像这样在 class 中添加适当的包进行扫描 Micronaut.build(args).packages("com.mypackage").start()
样本:
package com.mypackage;
public class FooService {
public void bar() {
}
}
package com.mypackage;
import io.micronaut.context.annotation.Bean;
import io.micronaut.context.annotation.Factory;
import javax.inject.Singleton;
@Factory
public class FooFactory {
@Bean
@Singleton
public FooService fooService() {
return new FooService();
}
}
//com.mypackage.package-info.java
@Configuration
package com.mypackage;
import io.micronaut.context.annotation.Configuration;
我从车把视图中学到了很多东西 renderer。
对于 bean 中的配置,您需要:
- 为您的配置选项创建一个带有 getter 的接口。
- 创建它的实现。最后,在你的 bean 的构造函数中,
- 将配置界面添加为参数。
当 Micronaut 创建你的 bean 时,它会读取 application.yml 文件并在你的配置 impl class 中设置值。然后它将使用配置值作为参数构建您的 bean。
实际问题出在 Maven 中。
Micronaut 注释处理器未由 maven-compiler-plugin
触发。
解决方案是在 maven-compile-plugin 中配置注释处理器:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${maven-compiler-plugin.source}</source>
<target>${maven-compiler-plugin.target}</target>
<encoding>${maven-compiler-plugin.encoding}</encoding>
<annotationProcessorPaths>
<!-- uncomment if you are using lombok -->
<!-- path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path -->
<path>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-inject-java</artifactId>
<version>${micronaut.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>