Maven 具有自动配置的定制Micronaut模块/jar

Maven 具有自动配置的定制Micronaut模块/jar,maven,dependency-injection,java-8,micronaut,Maven,Dependency Injection,Java 8,Micronaut,找不到正确的工作示例,无法使用自动配置编写自己的模块/lib。 有人能解释一下如何为micronaut应用程序编写合适的模块吗? 尝试加载@Factory类,并使用@Configuration注释添加package info.java,但没有帮助。还添加了适当的包来扫描主类,如Micronaut.build(args.packages(“com.mypackage”).start() 样本: package com.mypackage; public class FooService

找不到正确的工作示例,无法使用自动配置编写自己的模块/lib。
有人能解释一下如何为micronaut应用程序编写合适的模块吗?

尝试加载
@Factory
类,并使用
@Configuration
注释添加
package info.java
,但没有帮助。还添加了适当的包来扫描主类,如
Micronaut.build(args.packages(“com.mypackage”).start()

样本:

package com.mypackage;

    public class FooService {
      public void bar() {

      }
    }



从车把的视角我学到了很多

对于bean中的配置,您需要:

  • 为您的配置选项创建一个带有getter的接口
  • 创建它的一个实现。最后,在bean的构造函数中
  • 添加配置接口作为参数

  • 当Micronaut创建bean时,它将读取application.yml文件并在配置impl类中设置值。然后,它将使用配置值作为参数来构建bean。

    实际问题出现在Maven中。
    Micronaut注释处理器不是由
    Maven编译器插件触发的

    解决方案是在maven compile插件中配置注释处理器:

            <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>
    
    
    org.apache.maven.plugins
    maven编译器插件
    3.8.0
    ${maven编译器插件.source}
    ${maven编译器plugin.target}
    ${maven编译器plugin.encoding}
    微型机器人
    micronaut注入java
    ${micronaut.version}
    
    //com.mypackage.package-info.java
    @Configuration
    package com.mypackage;
    
    import io.micronaut.context.annotation.Configuration;
    
            <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>