@Override
    public ServerBuilder serviceUnder(String pathPrefix, HttpService service) {
        virtualHostTemplate.serviceUnder(pathPrefix, service);
        return this;
    }
Binds the specified {@link HttpService} under the specified directory of the default {@link VirtualHost}.
If the specified {@link HttpService} is an {@link HttpServiceWithRoutes}, the {@code pathPrefix} is added
to each {@link Route} of {@link HttpServiceWithRoutes#routes()}. For example, the
{@code serviceWithRoutes} in the following code will be bound to
({@code "/foo/bar"}) and ({@code "/foo/baz"}):
<pre>{@code
> HttpServiceWithRoutes serviceWithRoutes = new HttpServiceWithRoutes() {
>     @Override
>     public HttpResponse serve(ServiceRequestContext ctx, HttpRequest req) { ... }
>
>     @Override
>     public Set<Route> routes() {
>         return Set.of(Route.builder().path("/bar").build(),
>                       Route.builder().path("/baz").build());
>     }
> };
>
> Server.builder()
>       .serviceUnder("/foo", serviceWithRoutes)
>       .build();
}</pre>
core/src/main/java/com/linecorp/armeria/server/ServerBuilder.java