Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Aethelstone
    addikt

    Nem tudom kinek mennyire új dolog ez, de leírom, mivel doksiban nem nagyon tűnt fel.
    Spring 4.3-mal bejött az InjectionPoint class. CDI-ben már régebb óta van ilyen. Nekem ez abból az szempontból volt érdekes, hogy ennek a segítségével használtam CDI környezetben eddig a Loggereket. (inject-áltam, nekem ez így kényelmesebb volt, mint a standard megoldás)

    Íme spring oldalon a megvalósítás:

    @Bean
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    public Logger logger(InjectionPoint injectionPoint){
    return LoggerFactory.getLogger(injectionPoint.getMember().getDeclaringClass());
    }

    (SL4FJ a facade)

    Ezt ugye csak be kell szúrni a megfelelő osztályokba és kész:

    @Autowired
    private Logger logger;

    Mit gondoltok? Tetszik/nem tetszik?
    Jobban szeretitek a hagyományos megoldást?

    private final Logger logger = LoggerFactory.getLogger(getClass().getName());

    Az @Autowired kényelmesebb :)

  • floatr
    veterán

    Nem tudom kinek mennyire új dolog ez, de leírom, mivel doksiban nem nagyon tűnt fel.
    Spring 4.3-mal bejött az InjectionPoint class. CDI-ben már régebb óta van ilyen. Nekem ez abból az szempontból volt érdekes, hogy ennek a segítségével használtam CDI környezetben eddig a Loggereket. (inject-áltam, nekem ez így kényelmesebb volt, mint a standard megoldás)

    Íme spring oldalon a megvalósítás:

    @Bean
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    public Logger logger(InjectionPoint injectionPoint){
    return LoggerFactory.getLogger(injectionPoint.getMember().getDeclaringClass());
    }

    (SL4FJ a facade)

    Ezt ugye csak be kell szúrni a megfelelő osztályokba és kész:

    @Autowired
    private Logger logger;

    Mit gondoltok? Tetszik/nem tetszik?
    Jobban szeretitek a hagyományos megoldást?

    private final Logger logger = LoggerFactory.getLogger(getClass().getName());

    Úgy gondolom, hogy akkor van értelme konténerbe tenni dolgokat, ha ahhoz valamilyen formában kötődne a beaned, vagy az életciklusa. Egy logger szvsz max az osztályhoz kellene hogy kötődjön még csak nem is példányhoz, függetlenül attól, hogy a konténerben singleton. Emiatt én csak private static final loggert használok csak. Lehet ezt nem szeretni, de logikailag számomra tisztább a dolog, és bár marginálisnak tűnhet a dolog, de ennyivel is kevesebb ballaszt van a konténerben és a konfigban.

Új hozzászólás Aktív témák