Mistergsk ha scritto:
Io ho fatto una cosa del genere con Resttemplate ma ho un dubbio... ho fatto tutto nel controller...
Forse devo creare anche una classe @service e metterci tutta la parte resttemplate all interno?
Dipende. A livello del controller hai sicuramente in mano un oggetto di tipo MultipartFile. Intenderesti passarlo pari-pari ad un service? I service (in teoria) non dovrebbero "sapere" nulla del lato web (MultipartFile è un concetto "web"). Quindi sarebbe meglio separare i concetti.
Mistergsk ha scritto:
Inoltre, qualcuno sa spiegarmi cosa è un @Bean e perche se non lo inserisco non posso utilizzare @Autowired?
Bisogna inserirlo in controller?
Innanzitutto @Autowired serve in una classe gestita da Spring per ricevere l'iniettamento di un certo oggetto "dipendente" gestito sempre da Spring. Ma questo oggetto da qualche parte deve essere creato.
Spring può istanziare gli oggetti a fronte di varie cose:
- tramite auto-scanning dei package per trovare classi annotate @Component, @Service, ecc...
- quando si usa la "vecchia" XML configuration tramite le dichiarazioni con <bean>
- con la nuova Java configuration con @Bean (che è l'equivalente del tag <bean> nei XML)
@Bean generalmente si usa nelle classi annotate @Configuration, perché vengono trattate in modo speciale da Spring. Tecnicamente, @Bean si può usare anche in classi NON @Configuration, come nei @Component, @Service ecc... ma così @Bean funziona in modalità "lite", come dice la documentazione. I dettagli sono nella reference ufficiale: