Comment appeler une méthode de classe Java à partir de la couche de service Spring Boot


iranichai:

J'ai mon application de démarrage Spring à partir de laquelle j'essaie d'appeler une méthode à partir d'une classe java dans un module différent en dehors de mon application. J'ai la dépendance ajoutée à mon projet pom pour ce module externe. Le module externe n'est pas une application de démarrage Spring. J'ai mon code comme ci-dessous

@Service
public class MyServiceImpl {
    private MyInterface myInterface;
    
    public Response callMethod1() {
        Response response = new Response();
        response = myInterface.callMethod1();
        return response;
    }
}

L'interface MyInterface et son implémentation font partie du module externe. Le code est quelque chose comme ça.

public interface MyInterface {
    Response callMethod1();
}

La mise en oeuvre:

public class InterfaceImpl implements MyInterface {
    Response callMethod1() {
        Response response = doSomething();
        return response;
    }
}

Lorsque j'appelle la méthode de service, je la vois échouer avec InvocationTargetException. J'ai essayé le débogueur dans eclipse et je ne verrai pas les points d'arrêt dans l'implémentation être touchés. J'ai essayé en déplaçant le code d'Interface et d'implémentation dans mon projet avec quelques modifications pour voir si je peux le faire fonctionner. Voici mes changements.

Classe de service:

@Service
public class MyServiceImpl {
    @Autowired
    private MyInterface myInterface;
    
    public Response callMethod1() {
        Response response = new Response();
        response = myInterface.callMethod1();
        return response;
    }
}

Interface:

public interface MyInterface {
    Response callMethod1();
}

La mise en oeuvre:

@Service
public class InterfaceImpl implements MyInterface {
    Response callMethod1() {
        Response response = doSomething();
        return response;
    }
}

Comment puis-je appeler les méthodes de la classe java sans changer l'implémentation et la garder dans son module d'origine.

Merci.

oleg.cherednik:
@Configuration
public class Config {
    
    @Bean
    public Foo createFoo() {
        Foo foo = new Foo();    // this is POJO
        return foo; // after return it will be saved in Spring Context and become a Bean 
    } 

}

Articles connexes


Comment appeler une classe à partir de la méthode Main() ?

Lacee Squelette Je travaille actuellement sur le projet ci-dessous. Jusqu'à présent, j'ai du mal à accéder à ma classe à partir de mon programme. Je ne sais pas si c'est quelque chose qui me manque ou si je suis juste au dessus de ma tête. Je vais inclure le c