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:
- Spring Boot standard application properties
- JHipster application properties
- Application-specific properties
Like any Spring Boot application, JHipster allows you to configure any standard Spring Boot application property.
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
Here is a documentation for those properties:
jhipster: # Thread pool that will be used for asynchronous method calls in JHipster async: 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 https://www.jhipster.tech/api-gateway/ for more information on JHipster gateways gateway: rate-limiting: 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 http: # 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 #Force the server cipher suite to follow the exact order specifying in server.ssl.ciphers (For perfect forward secrecy) useUndertowUserCipherSuitesOrder: true 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 cache: 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: http://docs.hazelcast.org/docs/management-center/3.9/manual/html/Deploying_and_Starting.html management-center: 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 local: 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 distributed: 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 replicated: 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 # Memcached configuration # Uses the Xmemcached library, see https://github.com/killme2008/xmemcached memcached: # Disabled by default in dev mode, as it does not work with Spring Boot devtools enabled: true servers: localhost:11211 # Comma or whitespace separated list of servers' addresses expiration: 300 # Expiration time (in seconds) for the cache use-binary-protocol: true # Binary protocol is recommended for performance (and security) # E-mail properties mail: enabled: false # If e-mail sending is enabled. The standard `spring.mail` keys will need to be configured from: [email protected] # The default "from" address for e-mails base-url: http://127.0.0.1:8080 # URL to the application, used inside e-mails # Spring Security specific configuration security: 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 authentication: jwt: # JHipster specific JWT implementation # The secret token should be encoded using Base64 (you can type `echo 'secret-key'|base64` on your command line). # If both properties are configured, the `secret` property has a higher priority than the `base64-secret` property. secret: # JWT secret key in clear text (not recommended) base64-secret: # JWT secret key encoded in Base64 (recommended) 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 swagger: default-include-pattern: /api/.* title: JHipster API description: JHipster API documentation version: 0.0.1 terms-of-service-url: contact-name: contact-url: contact-email: license: license-url: host: protocols: # DropWizard Metrics configuration, used by MetricsConfiguration metrics: 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 graphite: 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 prometheus: 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 logging: 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 # 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. cors: 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 ribbon: # Comma-separated list of profiles that display a ribbon display-on-active-profiles: dev
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-prod.yml files. All you need to do is code your own specific properties.