Common application properties

JHipster generates a Spring Boot application, and can be configured using the standard Spring Boot properties mechanism.

Those properties are configured at generation-time by JHipster, and often have different values in development and production modes: learn more about this in our Profiles documentation.

In a JHipster application, there are three kinds of properties:

  1. Spring Boot standard application properties
  2. JHipster application properties
  3. Application-specific properties

Spring Boot standard application properties

Like any Spring Boot application, JHipster allows you to configure any standard Spring Boot application property.

JHipster application properties

JHipster provides specific application properties, which come from the JHipster server-side library. Those properties are standard for all JHipster projects, but some of them only work depending on what you selected when you built your application: for example the jhipster.cache.hazelcast key only works if you selected Hazelcast as your 2nd-level Hibernate cache.

Those properties are configured using the io.github.jhipster.config.JHipsterProperties class.

Here is a documentation for those properties:


    # Thread pool that will be used for asynchronous method calls in JHipster
        core-pool-size: 2 # Initial pool size
        max-pool-size: 50 # Maximum pool size
        queue-capacity: 10000 # Queue capacity of the pool

    # Specific configuration for JHipster gateways
    # See for more information on JHipster gateways
            enabled: false # Rate limiting is disabled by default
            limit: 100_000L # By default we allow 100,000 API calls
            duration-in-seconds: 3_600 # By default the rate limiting is reinitialized every hour
        authorized-microservices-endpoints: # Access Control Policy, if left empty for a route, all endpoints will be accessible
            app1: /api # recommended prod configuration, it allows the access to all API calls from the "app1" microservice

    # HTTP configuration
        # V_1_1 for HTTP/1.1 or V_2_0 for HTTP/2.
        # To use HTTP/2 you will need SSL support (see the Spring Boot "server.ssl" configuration)
        version: V_1_1
        cache: # Used by io.github.jhipster.web.filter.CachingHttpHeadersFilter
            timeToLiveInDays: 1461 # Static assets are cached for 4 years by default

    # Hibernate 2nd level cache, used by CacheConfiguration
        hazelcast: # Hazelcast configuration
            time-to-live-seconds: 3600 # By default objects stay 1 hour in the cache
            backup-count: 1 # Number of objects backups
            # Configure the Hazelcast management center
            # Full reference is available at:
                enabled: false # Hazelcast management center is disabled by default
                update-interval: 3 # Updates are sent to the Hazelcast management center every 3 seconds by default
                # Default URL for Hazelcast management center when using JHipster's Docker Compose configuration
                # See src/main/docker/hazelcast-management-center.yml
                # Warning, the default port is 8180 as port 8080 is already used by JHipster
                url: http://localhost:8180/mancenter
        ehcache: # Ehcache configuration
            time-to-live-seconds: 3600 # By default objects stay 1 hour in the cache
            max-entries: 100 # Number of objects in each cache entry
        infinispan: #Infinispan configuration
            config-file: default-configs/default-jgroups-tcp.xml
            # local app cache
                time-to-live-seconds: 60 # By default objects stay 1 hour (in minutes) in the cache
                max-entries: 100 # Number of objects in each cache entry
            #distributed app cache
                time-to-live-seconds: 60 # By default objects stay 1 hour (in minutes) in the cache
                max-entries: 100 # Number of objects in each cache entry
                instance-count: 1
            #replicated app cache
                time-to-live-seconds: 60 # By default objects stay 1 hour (in minutes) in the cache
                max-entries: 100 # Number of objects in each cache entry

    # E-mail properties
        from: [email protected] # The default "from" address for e-mails
        base-url: # URL to the application, used inside e-mails

    # Spring Security specific configuration
        remember-me: # JHipster secure implementation of the remember-me mechanism, for session-based authentication
            # security key (this key should be unique for your application, and kept secret)
            key: 0b32a651e6a65d5731e869dc136fb301b0a8c0e4
        client-authorization: # Used with JHipster UAA authentication
            access-token-uri: # URL of the JHipster UAA server OAuth tokens
            token-service-id: # ID of the current application
            client-id: # OAuth client ID
            client-secret: # OAuth client secret
            jwt: # JHipster specific JWT implementation
                secret: # JWT secret key
                token-validity-in-seconds: 86400 # Token is valid 24 hours
                token-validity-in-seconds-for-remember-me: 2592000 # Remember me token is valid 30 days

    # Swagger configuration
        default-include-pattern: /api/.*
        title: JHipster API
        description: JHipster API documentation
        version: 0.0.1

    # DropWizard Metrics configuration, used by MetricsConfiguration
        jmx: # Export metrics as JMX beans
            enabled: true # JMX is enabled by default
        # Send metrics to a Graphite server
        # Use the "graphite" Maven profile to have the Graphite dependencies
            enabled: false # Graphite is disabled by default
            host: localhost
            port: 2003
            prefix: jhipster
        # Send metrics to a Prometheus server
        # Use the "prometheus" Maven profile to have the Prometheus dependencies
            enabled: false # Prometheus is disabled by default
            endpoint: /prometheusMetrics
        logs: # Reports Dropwizard metrics in the logs
            enabled: false
            reportFrequency: 60 # frequency of reports in seconds

    # Logging configuration, used by LoggingConfiguration
        logstash: # Forward logs to Logstash over a socket
            enabled: false # Logstash is disabled by default
            host: localhost # Logstash server URL
            port: 5000 # Logstash server port
            queue-size: 512 # Queue for buffering logs
        spectator-metrics: # Reports Netflix Spectator metrics in the logs
            enabled: false # Spectator is disabled by default

    # Spring Social specific configuration, for Twitter/Facebook/Google authentication
        redirect-after-sign-in: "/#/home" # Redirect URL after successful authentication

    # By default cross-origin resource sharing (CORS) is enabled in "dev" mode for
    # monoliths and gateways.
    # It is disabled by default in "prod" mode for security reasons, and for microservices
    # (as you are supposed to use a gateway to access them).
    # This configures a standard org.springframework.web.cors.CorsConfiguration
    # Note that "exposed-headers" is mandatory for JWT-based security, which uses
    # the "Authorization" header, and which is not a default exposed header.
        allowed-origins: "*"
        allowed-methods: "*"
        allowed-headers: "*"
        exposed-headers: "Authorization"
        allow-credentials: true
        max-age: 1800

    # Ribbon displayed on the top left-hand side of JHipster applications
        # Comma-separated list of profiles that display a ribbon
        display-on-active-profiles: dev

Application-specific properties

Your generated application can also have its own Spring Boot properties. This is highly recommended, as it allows type-safe configuration of the application, as well as auto-completion and documentation within an IDE.

JHipster has generated a ApplicationProperties class in the config package, which is already preconfigured, and it is already documented at the bottom the application.yml, application-dev.yml and application-prod.yml files. All you need to do is code your own specific properties.