Containerless microservices package applications and their dependencies into a jar file.
Self-contained microservices are also packaged into a single Jar file, but it also contains an embedded framework, which contains optional third-party libraries, and of course these libraries are compatible.
The microservices in the container are packaged into a complete Java EE container and implemented in the Docker image. The architecture based on microservices brings new challenges to architects and developers. However, with the upgrading of languages and the increase of tools, developers and architects are fully capable of meeting such challenges. Java is no exception. This paper discusses the different methods of constructing microservices in Java ecosystem.