2023-06-16, 05:18
  #1
Medlem
bithaxs avatar
Som jag fattar det r det vissa saker som mste ligga som top-level-beans i sping fr att det ska funka som det r tnkt.

T.ex. nr man stter upp ker med rabbit mq ska exchange, queue och topic vara top level beans.

Mina frgor r d.

1. Kan man skapa top level beans programmatiskt i runtime p ngot stt?

2. Finns det ngon hirarki med beans i en bean och vad kan man gra med dem?

Det jag vill uppn r t.ex att kunna stta upp ker med en config fil. D kan man ju inte deklarera beans med annoteringar eftersom man inte vet villka beans man kommer att ha nr man kompilerar koden. Det r bara ett fiktivt exempel.

I C# s kan du gra kod som krs innan man bygger sjlva IOC containern. D kan man ha kod som t.ex laddar config filer eller vad du vill och styr villka saker som ska injectas osv.
__________________
Senast redigerad av bithax 2023-06-16 kl. 05:23.
Citera
2023-06-16, 13:17
  #2
Moderator
Protons avatar
Citat:
Ursprungligen postat av bithax
Som jag fattar det r det vissa saker som mste ligga som top-level-beans i sping fr att det ska funka som det r tnkt.

T.ex. nr man stter upp ker med rabbit mq ska exchange, queue och topic vara top level beans.

Mina frgor r d.

1. Kan man skapa top level beans programmatiskt i runtime p ngot stt?

2. Finns det ngon hirarki med beans i en bean och vad kan man gra med dem?

Det jag vill uppn r t.ex att kunna stta upp ker med en config fil. D kan man ju inte deklarera beans med annoteringar eftersom man inte vet villka beans man kommer att ha nr man kompilerar koden. Det r bara ett fiktivt exempel.

I C# s kan du gra kod som krs innan man bygger sjlva IOC containern. D kan man ha kod som t.ex laddar config filer eller vad du vill och styr villka saker som ska injectas osv.
Fast konfigurationen ska vl bara innehlla anslutningsparametrar till din k, inte sjlva kinitieringen som sdan, den kommer ju vara likadan oavsett milj och oavsett vilken konfiguration du plockar in?

Vet inte om jag uppfattar problemet rtt hr?
Citera
2023-06-16, 21:04
  #3
Medlem
bithaxs avatar
Citat:
Ursprungligen postat av Proton
Fast konfigurationen ska vl bara innehlla anslutningsparametrar till din k, inte sjlva kinitieringen som sdan, den kommer ju vara likadan oavsett milj och oavsett vilken konfiguration du plockar in?

Vet inte om jag uppfattar problemet rtt hr?

Ja det r sant att konfigurationen inte ndras, drmed makes sense att hrdkoda den.
Men det r inte najs att ha alla ker i en fil. Jag har brutit ut det nu s att jag har 6 beans i en java fil per k. T.ex. CreateOrderQueueConfig klassen skapar upp en exchange, en queue och en binding fr create_order och en exhange, en queue och en binding fr create_order_deadletter och kopplar ihop dem.

Men det r nd inte s najs att jag bara kan anropa en metod createQueue("create_order"); i min kod utan jag mste nd skapa den dr klassen och deklarera de dr 6 bnorna. Och jag hmtar nd k namnet frn config osv.

Och drfr tnkte jag att, det vore najs att kunna skapa bnorna i runtime.
Citera
2023-06-17, 09:23
  #4
Moderator
Protons avatar
Citat:
Ursprungligen postat av bithax
Ja det r sant att konfigurationen inte ndras, drmed makes sense att hrdkoda den.
Men det r inte najs att ha alla ker i en fil. Jag har brutit ut det nu s att jag har 6 beans i en java fil per k. T.ex. CreateOrderQueueConfig klassen skapar upp en exchange, en queue och en binding fr create_order och en exhange, en queue och en binding fr create_order_deadletter och kopplar ihop dem.

Men det r nd inte s najs att jag bara kan anropa en metod createQueue("create_order"); i min kod utan jag mste nd skapa den dr klassen och deklarera de dr 6 bnorna. Och jag hmtar nd k namnet frn config osv.

Och drfr tnkte jag att, det vore najs att kunna skapa bnorna i runtime.
Finns vl nn BeanFactory som kan skapa upp bnorna t dig p kommando tyckte jag jag sg nnstans nr jag googlade, fast den kanske inte gr det jag tror den gr?

https://www.geeksforgeeks.org/spring-beanfactory/

Ingen aning om det hjlper i ditt fall?
Citera
2023-06-18, 22:18
  #5
Medlem
PissBusss avatar
Citat:
Ursprungligen postat av bithax
Ja det r sant att konfigurationen inte ndras, drmed makes sense att hrdkoda den.
Men det r inte najs att ha alla ker i en fil. Jag har brutit ut det nu s att jag har 6 beans i en java fil per k. T.ex. CreateOrderQueueConfig klassen skapar upp en exchange, en queue och en binding fr create_order och en exhange, en queue och en binding fr create_order_deadletter och kopplar ihop dem.

Men det r nd inte s najs att jag bara kan anropa en metod createQueue("create_order"); i min kod utan jag mste nd skapa den dr klassen och deklarera de dr 6 bnorna. Och jag hmtar nd k namnet frn config osv.

Och drfr tnkte jag att, det vore najs att kunna skapa bnorna i runtime.

Lter som att det r 'application context' som inte startats p rtt stt. Kolla av lite dokumentation om det och se om det kan stmma.
Citera
2023-06-21, 01:50
  #6
Medlem
Citat:
Ursprungligen postat av bithax
Som jag fattar det r det vissa saker som mste ligga som top-level-beans i sping fr att det ska funka som det r tnkt.

T.ex. nr man stter upp ker med rabbit mq ska exchange, queue och topic vara top level beans.

Mina frgor r d.

1. Kan man skapa top level beans programmatiskt i runtime p ngot stt?

2. Finns det ngon hirarki med beans i en bean och vad kan man gra med dem?

Det jag vill uppn r t.ex att kunna stta upp ker med en config fil. D kan man ju inte deklarera beans med annoteringar eftersom man inte vet villka beans man kommer att ha nr man kompilerar koden. Det r bara ett fiktivt exempel.

I C# s kan du gra kod som krs innan man bygger sjlva IOC containern. D kan man ha kod som t.ex laddar config filer eller vad du vill och styr villka saker som ska injectas osv.

Om du vill ndra i runtime, d kan du stta upp en Config Server dr din rabbit conf finns.

Det du d kan gra r att ndra konfigurationen, sen trigga en refresh s kommer din applikation att refresha bnorna i runtime. T.e.x stta p/stnga av fldet. Det beror lite p exakt vad det r du vill ndra i runtime.

https://societe-generale.github.io/r...-boot-starter/
Dr finns det exempel p hur confen kan se ut.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in