Injectarea o proprietate personalizată la cerere.proprietăți în quarkus

0

Problema

În urma ghidul de aici sunt încercarea de a injecta propria mea proprietate personalizată care am definit în aplicare.proprietăți. Elicea este definit ca sendgrid.apikey=key și apoi clasa mea este;

@ApplicationScoped
public class EmailConfig {

    @Inject
    @ConfigProperty(name = "sendgrid.apikey")
    String API_KEY;

    private SendGrid sendGrid;
    private Request request;

    public EmailConfig() {
        sendGrid = new SendGrid(API_KEY);
        request = new Request();
    }

Când m-am lovit prima linie în constructor, mă aștept API_KEY să fie valoarea în cerere.proprietăți de fișier, dar este null. Nu am idee de ce! Am încercat acest lucru cu și fără @Inject adnotare btw.

Orice idei?

java properties quarkus
2021-11-22 20:37:30
1

Cel mai bun răspuns

2

Așteptările dumneavoastră este greșită. Există trucuri pentru a crea o instanță a unei clase fără a apela un constructor, dar ele sunt, în general, nu prea de încredere, astfel încât ceea ce Quarkus nu este ceea ce ar face cu mâna: pentru a crea o instanță, se numește constructor. Numai după ce o instanță există poate câmpuri fi injectat.

Ce puteți face este de a injecta obiecte în constructorul ca parametrii:

@ApplicationScoped
public class EmailConfig {

    private SendGrid sendGrid;
    private Request request;

    @Inject
    public EmailConfig(@ConfigProperty(name = "sendgrid.apikey") String API_KEY) {
        sendGrid = new SendGrid(API_KEY);
        request = new Request();
    }
2021-11-22 22:02:08

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................