Thorntail / Wildfly Swarm 中的 CDI 注入在控制器之外无法正常工作

我正在尝试使用@ConfigurationValuewhich 应该从中读取值project-defaults.yml,但是,我遇到了奇怪的行为,请参阅下面的代码。


我的控制器:


@ApplicationScoped

@Path("/app")

public class MyController {

    @Inject

    @ConfigurationValue("database.name")

    private String name;


    @GET

    @Path("/name-1")

    @Produces(MediaType.TEXT_PLAIN)

    public String name1() {

        return String.valueOf(name); // displays postgres

    }


    @GET

    @Path("/name-2")

    @Produces(MediaType.TEXT_PLAIN)

    public String name2() {

        return String.valueOf(new Configuration().getName()); // displays null

    }

}


@ApplicationScoped

class Configuration {

    @Inject

    @ConfigurationValue("database.name")

    private String name;


    public String getName() {

        return name;

    }

}

项目-defaults.yml


database:

  name: postgres

该值database.nameMyController类内部使用时被注入,但在Configuration类内部时不注入。

我正在使用 thorntail 版本2.3.0.Final-SNAPSHOT

你有什么想法可能导致它?谢谢。


汪汪一只猫
浏览 139回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java