一、SpringBoot是什么?

  Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

  spring大家都知道,boot是启动的意思。所以,spring boot其实就是一个启动spring项目的一个工具而已。从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。

  现在流行微服务与分布式系统,springboot就是一个非常好的微服务开发框架,你可以使用它快速的搭建起一个系统。同时,你也可以使用spring cloud(Spring Cloud是一个基于Spring Boot实现的云应用开发工具)来搭建一个分布式的网站。

二、SpringBoot的约定大于配置

约定大于配置:就是说系统,类库,框架应该假定合理的默认值,而非要求提供不必要的配置,

 

三、SpringBoot的核心功能

SpringBoot主要有如下核心功能:

1.独立运行的Spring项目

Spring Boot可以以jar包的形式来运行,运行一个Spring Boot项目我们只需要通过java -jar xx.jar类运行。非常方便。

2.内嵌Servlet容器

spring boot内置了三种servlet容器:tomcat,jetty,undertow。所以,你只需要一个java的运行环境就可以跑spring boot的项目了。

springboot 编写sdk_springboot 编写sdk

 

3.提供starter简化Maven配置

使用Spring或者SpringMVC我们需要添加大量的依赖,而这些依赖很多都是固定的,这里Spring Boot 通过starter能够帮助我们简化Maven配置。

4.自动配置Spring

spring boot并不是一个全新的框架,它不是spring解决方案的一个替代品,而是spring的一个封装。所以,你以前可以用spring做的事情,现在用spring boot都可以做。针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。

5.准生产的应用监控

spring boot提供了actuator包,可以使用它来对你的应用进行监控。它主要提供了以下功能:

springboot 编写sdk_应用程序_02

6.无代码生成和xml配置

spring boot采用java config的方式,对spring进行配置,并且提供了大量的注解,极大地提高了工作效率。

springboot 编写sdk_应用程序_03

spring boot提供许多默认配置,当然也提供自定义配置。但是所有spring boot的项目都只有一个配置文件:application.properties/application.yml。

 

 四、配置解析

1、自定义属性

application.properties提供自定义属性的支持,这样我们就可以把一些常量配置在这里:

#redis配置
spring.redis.database=6
spring.redis.host=192.168.15.5
spring.redis.password=ZXCasdQWE123
spring.redis.port=6379

然后直接在要使用的地方通过注解@Value(value=”${config.name}”)就可以绑定到你想要的属性上面

@Value("${spring.redis.database}")
    private  String database;
    @Value("${spring.redis.host}")
    private  String host;

有时候属性太多了,一个个绑定到属性字段上太累,官方提倡绑定一个对象的bean,这里我们建一个ConfigBean.java类,顶部需要使用注解@ConfigurationProperties(prefix = “com.dudu”)来指明使用哪个

@ConfigurationProperties(prefix = "spring.redis")
public class RedisConfig {
    private String database;
    private String host;

    ...
    // 省略getter和setter
}

这里配置完还需要在spring Boot入口类加上@EnableConfigurationProperties并指明要加载哪个bean,如果不写ConfigBean.class,在bean类那边添加

@SpringBootApplication
@EnableConfigurationProperties({RedisConfig.class})
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

最后通过@Autowired引入RedisConfig使用即可。

2、参数间引用

在application.properties中的各个参数之间也可以直接引用来使用,就像下面的设置:

com.text.name="张三"
com.test.want="祝大家狗年大吉"
com.test.say=${com.text.name}在此${com.test.want}

这样我们就可以只是用say这个属性就好。

3、使用自定义配置文件

 有时候我们不希望把所有配置都放在application.properties里面,这时候我们可以另外定义一个,路径跟也放在src/main/resources下面。

如果你使用的是1.5以前的版本,那么可以通过locations指定properties文件的位置,这样:

@ConfigurationProperties(prefix = "config2",locations="classpath:test.properties")

但是1.5版本后就没有这个属性了,找了半天发现添加@Configuration和@PropertySource(“classpath:test.properties”)后才可以读取。

新建一个bean类:

@Configuration
@ConfigurationProperties(prefix = "com.test") 
@PropertySource("classpath:test.properties")
public class ConfigTestBean {
    private String name;
    private String want;
    ...
    // 省略getter和setter
}

4、随机值配置

配置文件中${random} 可以用来生成各种不同类型的随机值,从而简化了代码生成的麻烦,例如 生成 int 值、long 值或者 string 字符串。

com.secret=${random.value}
com.number=${random.int}
com.bignumber=${random.long}
com.uuid=${random.uuid}
com.number.less.than.ten=${random.int(10)}
com.number.in.range=${random.int[1024,65536]}

5、外部配置-命令行参数配置

Spring Boot是基于jar包运行的,打成jar包的程序可以直接通过下面命令运行:

java -jar xx.jar

可以以下命令修改tomcat端口号:

java -jar xx.jar --server.port=9090

可以看出,命令行中连续的两个减号--就是对application.properties中的属性值进行赋值的标识。
所以java -jar xx.jar --server.port=9090等价于在application.properties中添加属性server.port=9090
如果你怕命令行有风险,可以使用SpringApplication.setAddCommandLineProperties(false)禁用它。

 

实际上,Spring Boot应用程序有多种设置途径,Spring Boot能从多重属性源获得属性,包括如下几种:

  • 根目录下的开发工具全局设置属性(当开发工具激活时为~/.spring-boot-devtools.properties)。
  • 测试中的@TestPropertySource注解。
  • 测试中的@SpringBootTest#properties注解特性。
  • 命令行参数
  • SPRING_APPLICATION_JSON中的属性(环境变量或系统属性中的内联JSON嵌入)。
  • ServletConfig初始化参数。
  • ServletContext初始化参数。
  • java:comp/env里的JNDI属性
  • JVM系统属性
  • 操作系统环境变量
  • 随机生成的带random.* 前缀的属性(在设置其他属性时,可以应用他们,比如${random.long})
  • 应用程序以外的application.properties或者appliaction.yml文件
  • 打包在应用程序内的application.properties或者appliaction.yml文件
  • 通过@PropertySource标注的属性源
  • 默认属性(通过SpringApplication.setDefaultProperties指定).

这里列表按组优先级排序,也就是说,任何在高优先级属性源里设置的属性都会覆盖低优先级的相同属性,列如我们上面提到的命令行属性就覆盖了application.properties的属性。

6、配置文件的优先级

application.properties和application.yml文件可以放在以下四个位置:

  • 外置,在相对于应用程序运行目录的/congfig子目录里。
  • 外置,在应用程序运行的目录里
  • 内置,在config包内
  • 内置,在Classpath根目录

同样,这个列表按照优先级排序,也就是说,src/main/resources/config下application.properties覆盖src/main/resources下application.properties中相同的属性。

此外,如果你在相同优先级位置同时有application.properties和application.yml,那么application.properties里的属性里面的属性就会覆盖application.yml。

7、Profile-多环境配置

  当应用程序需要部署到不同运行环境时,一些配置细节通常会有所不同,最简单的比如日志,生产日志会将日志级别设置为WARN或更高级别,并将日志写入日志文件,而开发的时候需要日志级别为DEBUG,日志输出到控制台即可。
  如果按照以前的做法,就是每次发布的时候替换掉配置文件,这样太麻烦了,Spring Boot的Profile就给我们提供了解决方案,命令带上参数就搞定。

这里我们来模拟一下,只是简单的修改端口来测试
在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

  • application-dev.properties:开发环境
  • application-prod.properties:生产环境

想要使用对应的环境,只需要在application.properties中使用spring.profiles.active属性来设置,值对应上面提到的{profile},这里就是指dev、prod这2个。
当然你也可以用命令行启动的时候带上参数:

java -jar xxx.jar --spring.profiles.active=dev

除了可以用profile的配置文件来分区配置我们的环境变量,在代码里,我们还可以直接用@Profile注解来进行配置

例如数据库配置,这里我们先定义一个接口

public  interface DBConnector { public  void  configure(); }

分别定义俩个实现类来实现它

/**
  * 测试数据库
  */
@Component
@Profile("testdb")
public class TestDBConnector implements DBConnector {
    @Override
    public void configure() {
        System.out.println("testdb");
    }
}
/**
 * 生产数据库
 */
@Component
@Profile("devdb")
public class DevDBConnector implements DBConnector {
    @Override
    public void configure() {
        System.out.println("devdb");
    }
}

通过在配置文件激活具体使用哪个实现类

spring.profiles.active=testdb

然后就可以这么用了

@Autowired 
DBConnector connector;

除了spring.profiles.active来激活一个或者多个profile之外,还可以用spring.profiles.include来叠加profile

spring.profiles.active: testdb  
spring.profiles.include: proddb,prodmq

五、常用应用程序属性

1 # ===================================================================
   2 # COMMON SPRING BOOT PROPERTIES
   3 #
   4 # This sample file is provided as a guideline. Do NOT copy it in its
   5 # entirety to your own application.               ^^^
   6 # ===================================================================
   7 
   8 
   9 # ----------------------------------------
  10 # CORE PROPERTIES
  11 # ----------------------------------------
  12 
  13 # BANNER
  14 banner.charset=UTF-8 # Banner file encoding.
  15 banner.location=classpath:banner.txt # Banner file location.
  16 banner.image.location=classpath:banner.gif # Banner image file location (jpg/png can also be used).
  17 banner.image.width= # Width of the banner image in chars (default 76)
  18 banner.image.height= # Height of the banner image in chars (default based on image height)
  19 banner.image.margin= # Left hand image margin in chars (default 2)
  20 banner.image.invert= # If images should be inverted for dark terminal themes (default false)
  21 
  22 # LOGGING
  23 logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback
  24 logging.exception-conversion-word=%wEx # Conversion word used when logging exceptions.
  25 logging.file= # Log file name. For instance `myapp.log`
  26 logging.level.*= # Log levels severity mapping. For instance `logging.level.org.springframework=DEBUG`
  27 logging.path= # Location of the log file. For instance `/var/log`
  28 logging.pattern.console= # Appender pattern for output to the console. Only supported with the default logback setup.
  29 logging.pattern.file= # Appender pattern for output to the file. Only supported with the default logback setup.
  30 logging.pattern.level= # Appender pattern for log level (default %5p). Only supported with the default logback setup.
  31 logging.register-shutdown-hook=false # Register a shutdown hook for the logging system when it is initialized.
  32 
  33 # AOP
  34 spring.aop.auto=true # Add @EnableAspectJAutoProxy.
  35 spring.aop.proxy-target-class=false # Whether subclass-based (CGLIB) proxies are to be created (true) as opposed to standard Java interface-based proxies (false).
  36 
  37 # IDENTITY (ContextIdApplicationContextInitializer)
  38 spring.application.index= # Application index.
  39 spring.application.name= # Application name.
  40 
  41 # ADMIN (SpringApplicationAdminJmxAutoConfiguration)
  42 spring.application.admin.enabled=false # Enable admin features for the application.
  43 spring.application.admin.jmx-name=org.springframework.boot:type=Admin,name=SpringApplication # JMX name of the application admin MBean.
  44 
  45 # AUTO-CONFIGURATION
  46 spring.autoconfigure.exclude= # Auto-configuration classes to exclude.
  47 
  48 # SPRING CORE
  49 spring.beaninfo.ignore=true # Skip search of BeanInfo classes.
  50 
  51 # SPRING CACHE (CacheProperties)
  52 spring.cache.cache-names= # Comma-separated list of cache names to create if supported by the underlying cache manager.
  53 spring.cache.caffeine.spec= # The spec to use to create caches. Check CaffeineSpec for more details on the spec format.
  54 spring.cache.couchbase.expiration=0 # Entry expiration in milliseconds. By default the entries never expire.
  55 spring.cache.ehcache.config= # The location of the configuration file to use to initialize EhCache.
  56 spring.cache.guava.spec= # The spec to use to create caches. Check CacheBuilderSpec for more details on the spec format.
  57 spring.cache.hazelcast.config= # The location of the configuration file to use to initialize Hazelcast.
  58 spring.cache.infinispan.config= # The location of the configuration file to use to initialize Infinispan.
  59 spring.cache.jcache.config= # The location of the configuration file to use to initialize the cache manager.
  60 spring.cache.jcache.provider= # Fully qualified name of the CachingProvider implementation to use to retrieve the JSR-107 compliant cache manager. Only needed if more than one JSR-107 implementation is available on the classpath.
  61 spring.cache.type= # Cache type, auto-detected according to the environment by default.
  62 
  63 # SPRING CONFIG - using environment property only (ConfigFileApplicationListener)
  64 spring.config.location= # Config file locations.
  65 spring.config.name=application # Config file name.
  66 
  67 # HAZELCAST (HazelcastProperties)
  68 spring.hazelcast.config= # The location of the configuration file to use to initialize Hazelcast.
  69 
  70 # PROJECT INFORMATION (ProjectInfoProperties)
  71 spring.info.build.location=classpath:META-INF/build-info.properties # Location of the generated build-info.properties file.
  72 spring.info.git.location=classpath:git.properties # Location of the generated git.properties file.
  73 
  74 # JMX
  75 spring.jmx.default-domain= # JMX domain name.
  76 spring.jmx.enabled=true # Expose management beans to the JMX domain.
  77 spring.jmx.server=mbeanServer # MBeanServer bean name.
  78 
  79 # Email (MailProperties)
  80 spring.mail.default-encoding=UTF-8 # Default MimeMessage encoding.
  81 spring.mail.host= # SMTP server host. For instance `smtp.example.com`
  82 spring.mail.jndi-name= # Session JNDI name. When set, takes precedence to others mail settings.
  83 spring.mail.password= # Login password of the SMTP server.
  84 spring.mail.port= # SMTP server port.
  85 spring.mail.properties.*= # Additional JavaMail session properties.
  86 spring.mail.protocol=smtp # Protocol used by the SMTP server.
  87 spring.mail.test-connection=false # Test that the mail server is available on startup.
  88 spring.mail.username= # Login user of the SMTP server.
  89 
  90 # APPLICATION SETTINGS (SpringApplication)
  91 spring.main.banner-mode=console # Mode used to display the banner when the application runs.
  92 spring.main.sources= # Sources (class name, package name or XML resource location) to include in the ApplicationContext.
  93 spring.main.web-environment= # Run the application in a web environment (auto-detected by default).
  94 
  95 # FILE ENCODING (FileEncodingApplicationListener)
  96 spring.mandatory-file-encoding= # Expected character encoding the application must use.
  97 
  98 # INTERNATIONALIZATION (MessageSourceAutoConfiguration)
  99 spring.messages.always-use-message-format=false # Set whether to always apply the MessageFormat rules, parsing even messages without arguments.
 100 spring.messages.basename=messages # Comma-separated list of basenames, each following the ResourceBundle convention.
 101 spring.messages.cache-seconds=-1 # Loaded resource bundle files cache expiration, in seconds. When set to -1, bundles are cached forever.
 102 spring.messages.encoding=UTF-8 # Message bundles encoding.
 103 spring.messages.fallback-to-system-locale=true # Set whether to fall back to the system Locale if no files for a specific Locale have been found.
 104 
 105 # OUTPUT
 106 spring.output.ansi.enabled=detect # Configure the ANSI output.
 107 
 108 # PID FILE (ApplicationPidFileWriter)
 109 spring.pid.fail-on-write-error= # Fail if ApplicationPidFileWriter is used but it cannot write the PID file.
 110 spring.pid.file= # Location of the PID file to write (if ApplicationPidFileWriter is used).
 111 
 112 # PROFILES
 113 spring.profiles.active= # Comma-separated list (or list if using YAML) of active profiles.
 114 spring.profiles.include= # Unconditionally activate the specified comma separated profiles (or list of profiles if using YAML).
 115 
 116 # SENDGRID (SendGridAutoConfiguration)
 117 spring.sendgrid.api-key= # SendGrid api key (alternative to username/password)
 118 spring.sendgrid.username= # SendGrid account username
 119 spring.sendgrid.password= # SendGrid account password
 120 spring.sendgrid.proxy.host= # SendGrid proxy host
 121 spring.sendgrid.proxy.port= # SendGrid proxy port
 122 
 123 
 124 # ----------------------------------------
 125 # WEB PROPERTIES
 126 # ----------------------------------------
 127 
 128 # EMBEDDED SERVER CONFIGURATION (ServerProperties)
 129 server.address= # Network address to which the server should bind to.
 130 server.compression.enabled=false # If response compression is enabled.
 131 server.compression.excluded-user-agents= # List of user-agents to exclude from compression.
 132 server.compression.mime-types= # Comma-separated list of MIME types that should be compressed. For instance `text/html,text/css,application/json`
 133 server.compression.min-response-size= # Minimum response size that is required for compression to be performed. For instance 2048
 134 server.connection-timeout= # Time in milliseconds that connectors will wait for another HTTP request before closing the connection. When not set, the connector's container-specific default will be used. Use a value of -1 to indicate no (i.e. infinite) timeout.
 135 server.context-parameters.*= # Servlet context init parameters. For instance `server.context-parameters.a=alpha`
 136 server.context-path= # Context path of the application.
 137 server.display-name=application # Display name of the application.
 138 server.max-http-header-size=0 # Maximum size in bytes of the HTTP message header.
 139 server.error.include-stacktrace=never # When to include a "stacktrace" attribute.
 140 server.error.path=/error # Path of the error controller.
 141 server.error.whitelabel.enabled=true # Enable the default error page displayed in browsers in case of a server error.
 142 server.jetty.acceptors= # Number of acceptor threads to use.
 143 server.jetty.max-http-post-size=0 # Maximum size in bytes of the HTTP post or put content.
 144 server.jetty.selectors= # Number of selector threads to use.
 145 server.jsp-servlet.class-name=org.apache.jasper.servlet.JspServlet # The class name of the JSP servlet.
 146 server.jsp-servlet.init-parameters.*= # Init parameters used to configure the JSP servlet
 147 server.jsp-servlet.registered=true # Whether or not the JSP servlet is registered
 148 server.port=8080 # Server HTTP port.
 149 server.server-header= # Value to use for the Server response header (no header is sent if empty)
 150 server.servlet-path=/ # Path of the main dispatcher servlet.
 151 server.use-forward-headers= # If X-Forwarded-* headers should be applied to the HttpRequest.
 152 server.session.cookie.comment= # Comment for the session cookie.
 153 server.session.cookie.domain= # Domain for the session cookie.
 154 server.session.cookie.http-only= # "HttpOnly" flag for the session cookie.
 155 server.session.cookie.max-age= # Maximum age of the session cookie in seconds.
 156 server.session.cookie.name= # Session cookie name.
 157 server.session.cookie.path= # Path of the session cookie.
 158 server.session.cookie.secure= # "Secure" flag for the session cookie.
 159 server.session.persistent=false # Persist session data between restarts.
 160 server.session.store-dir= # Directory used to store session data.
 161 server.session.timeout= # Session timeout in seconds.
 162 server.session.tracking-modes= # Session tracking modes (one or more of the following: "cookie", "url", "ssl").
 163 server.ssl.ciphers= # Supported SSL ciphers.
 164 server.ssl.client-auth= # Whether client authentication is wanted ("want") or needed ("need"). Requires a trust store.
 165 server.ssl.enabled= # Enable SSL support.
 166 server.ssl.enabled-protocols= # Enabled SSL protocols.
 167 server.ssl.key-alias= # Alias that identifies the key in the key store.
 168 server.ssl.key-password= # Password used to access the key in the key store.
 169 server.ssl.key-store= # Path to the key store that holds the SSL certificate (typically a jks file).
 170 server.ssl.key-store-password= # Password used to access the key store.
 171 server.ssl.key-store-provider= # Provider for the key store.
 172 server.ssl.key-store-type= # Type of the key store.
 173 server.ssl.protocol=TLS # SSL protocol to use.
 174 server.ssl.trust-store= # Trust store that holds SSL certificates.
 175 server.ssl.trust-store-password= # Password used to access the trust store.
 176 server.ssl.trust-store-provider= # Provider for the trust store.
 177 server.ssl.trust-store-type= # Type of the trust store.
 178 server.tomcat.accept-count= # Maximum queue length for incoming connection requests when all possible request processing threads are in use.
 179 server.tomcat.accesslog.buffered=true # Buffer output such that it is only flushed periodically.
 180 server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be relative to the tomcat base dir or absolute.
 181 server.tomcat.accesslog.enabled=false # Enable access log.
 182 server.tomcat.accesslog.pattern=common # Format pattern for access logs.
 183 server.tomcat.accesslog.prefix=access_log # Log file name prefix.
 184 server.tomcat.accesslog.rename-on-rotate=false # Defer inclusion of the date stamp in the file name until rotate time.
 185 server.tomcat.accesslog.request-attributes-enabled=false # Set request attributes for IP address, Hostname, protocol and port used for the request.
 186 server.tomcat.accesslog.rotate=true # Enable access log rotation.
 187 server.tomcat.accesslog.suffix=.log # Log file name suffix.
 188 server.tomcat.additional-tld-skip-patterns= # Comma-separated list of additional patterns that match jars to ignore for TLD scanning.
 189 server.tomcat.background-processor-delay=30 # Delay in seconds between the invocation of backgroundProcess methods.
 190 server.tomcat.basedir= # Tomcat base directory. If not specified a temporary directory will be used.
 191 server.tomcat.internal-proxies=10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\
 192         192\\.168\\.\\d{1,3}\\.\\d{1,3}|\\
 193         169\\.254\\.\\d{1,3}\\.\\d{1,3}|\\
 194         127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\
 195         172\\.1[6-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\
 196         172\\.2[0-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\
 197         172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3} # regular expression matching trusted IP addresses.
 198 server.tomcat.max-connections= # Maximum number of connections that the server will accept and process at any given time.
 199 server.tomcat.max-http-post-size=0 # Maximum size in bytes of the HTTP post content.
 200 server.tomcat.max-threads=0 # Maximum amount of worker threads.
 201 server.tomcat.min-spare-threads=0 # Minimum amount of worker threads.
 202 server.tomcat.port-header=X-Forwarded-Port # Name of the HTTP header used to override the original port value.
 203 server.tomcat.protocol-header= # Header that holds the incoming protocol, usually named "X-Forwarded-Proto".
 204 server.tomcat.protocol-header-https-value=https # Value of the protocol header that indicates that the incoming request uses SSL.
 205 server.tomcat.redirect-context-root= # Whether requests to the context root should be redirected by appending a / to the path.
 206 server.tomcat.remote-ip-header= # Name of the http header from which the remote ip is extracted. For instance `X-FORWARDED-FOR`
 207 server.tomcat.uri-encoding=UTF-8 # Character encoding to use to decode the URI.
 208 server.undertow.accesslog.dir= # Undertow access log directory.
 209 server.undertow.accesslog.enabled=false # Enable access log.
 210 server.undertow.accesslog.pattern=common # Format pattern for access logs.
 211 server.undertow.accesslog.prefix=access_log. # Log file name prefix.
 212 server.undertow.accesslog.rotate=true # Enable access log rotation.
 213 server.undertow.accesslog.suffix=log # Log file name suffix.
 214 server.undertow.buffer-size= # Size of each buffer in bytes.
 215 server.undertow.buffers-per-region= # Number of buffer per region.
 216 server.undertow.direct-buffers= # Allocate buffers outside the Java heap.
 217 server.undertow.io-threads= # Number of I/O threads to create for the worker.
 218 server.undertow.max-http-post-size=0 # Maximum size in bytes of the HTTP post content.
 219 server.undertow.worker-threads= # Number of worker threads.
 220 
 221 # FREEMARKER (FreeMarkerAutoConfiguration)
 222 spring.freemarker.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
 223 spring.freemarker.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
 224 spring.freemarker.cache=false # Enable template caching.
 225 spring.freemarker.charset=UTF-8 # Template encoding.
 226 spring.freemarker.check-template-location=true # Check that the templates location exists.
 227 spring.freemarker.content-type=text/html # Content-Type value.
 228 spring.freemarker.enabled=true # Enable MVC view resolution for this technology.
 229 spring.freemarker.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.
 230 spring.freemarker.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.
 231 spring.freemarker.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".
 232 spring.freemarker.prefer-file-system-access=true # Prefer file system access for template loading. File system access enables hot detection of template changes.
 233 spring.freemarker.prefix= # Prefix that gets prepended to view names when building a URL.
 234 spring.freemarker.request-context-attribute= # Name of the RequestContext attribute for all views.
 235 spring.freemarker.settings.*= # Well-known FreeMarker keys which will be passed to FreeMarker's Configuration.
 236 spring.freemarker.suffix= # Suffix that gets appended to view names when building a URL.
 237 spring.freemarker.template-loader-path=classpath:/templates/ # Comma-separated list of template paths.
 238 spring.freemarker.view-names= # White list of view names that can be resolved.
 239 
 240 # GROOVY TEMPLATES (GroovyTemplateAutoConfiguration)
 241 spring.groovy.template.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
 242 spring.groovy.template.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
 243 spring.groovy.template.cache= # Enable template caching.
 244 spring.groovy.template.charset=UTF-8 # Template encoding.
 245 spring.groovy.template.check-template-location=true # Check that the templates location exists.
 246 spring.groovy.template.configuration.*= # See GroovyMarkupConfigurer
 247 spring.groovy.template.content-type=test/html # Content-Type value.
 248 spring.groovy.template.enabled=true # Enable MVC view resolution for this technology.
 249 spring.groovy.template.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.
 250 spring.groovy.template.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.
 251 spring.groovy.template.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".
 252 spring.groovy.template.prefix= # Prefix that gets prepended to view names when building a URL.
 253 spring.groovy.template.request-context-attribute= # Name of the RequestContext attribute for all views.
 254 spring.groovy.template.resource-loader-path=classpath:/templates/ # Template path.
 255 spring.groovy.template.suffix=.tpl # Suffix that gets appended to view names when building a URL.
 256 spring.groovy.template.view-names= # White list of view names that can be resolved.
 257 
 258 # SPRING HATEOAS (HateoasProperties)
 259 spring.hateoas.use-hal-as-default-json-media-type=true # Specify if application/hal+json responses should be sent to requests that accept application/json.
 260 
 261 # HTTP message conversion
 262 spring.http.converters.preferred-json-mapper=jackson # Preferred JSON mapper to use for HTTP message conversion. Set to "gson" to force the use of Gson when both it and Jackson are on the classpath.
 263 
 264 # HTTP encoding (HttpEncodingProperties)
 265 spring.http.encoding.charset=UTF-8 # Charset of HTTP requests and responses. Added to the "Content-Type" header if not set explicitly.
 266 spring.http.encoding.enabled=true # Enable http encoding support.
 267 spring.http.encoding.force= # Force the encoding to the configured charset on HTTP requests and responses.
 268 spring.http.encoding.force-request= # Force the encoding to the configured charset on HTTP requests. Defaults to true when "force" has not been specified.
 269 spring.http.encoding.force-response= # Force the encoding to the configured charset on HTTP responses.
 270 spring.http.encoding.mapping= # Locale to Encoding mapping.
 271 
 272 # MULTIPART (MultipartProperties)
 273 spring.http.multipart.enabled=true # Enable support of multi-part uploads.
 274 spring.http.multipart.file-size-threshold=0 # Threshold after which files will be written to disk. Values can use the suffixed "MB" or "KB" to indicate a Megabyte or Kilobyte size.
 275 spring.http.multipart.location= # Intermediate location of uploaded files.
 276 spring.http.multipart.max-file-size=1MB # Max file size. Values can use the suffixed "MB" or "KB" to indicate a Megabyte or Kilobyte size.
 277 spring.http.multipart.max-request-size=10MB # Max request size. Values can use the suffixed "MB" or "KB" to indicate a Megabyte or Kilobyte size.
 278 spring.http.multipart.resolve-lazily=false # Whether to resolve the multipart request lazily at the time of file or parameter access.
 279 
 280 # JACKSON (JacksonProperties)
 281 spring.jackson.date-format= # Date format string or a fully-qualified date format class name. For instance `yyyy-MM-dd HH:mm:ss`.
 282 spring.jackson.default-property-inclusion= # Controls the inclusion of properties during serialization.
 283 spring.jackson.deserialization.*= # Jackson on/off features that affect the way Java objects are deserialized.
 284 spring.jackson.generator.*= # Jackson on/off features for generators.
 285 spring.jackson.joda-date-time-format= # Joda date time format string. If not configured, "date-format" will be used as a fallback if it is configured with a format string.
 286 spring.jackson.locale= # Locale used for formatting.
 287 spring.jackson.mapper.*= # Jackson general purpose on/off features.
 288 spring.jackson.parser.*= # Jackson on/off features for parsers.
 289 spring.jackson.property-naming-strategy= # One of the constants on Jackson's PropertyNamingStrategy. Can also be a fully-qualified class name of a PropertyNamingStrategy subclass.
 290 spring.jackson.serialization.*= # Jackson on/off features that affect the way Java objects are serialized.
 291 spring.jackson.time-zone= # Time zone used when formatting dates. For instance `America/Los_Angeles`
 292 
 293 # JERSEY (JerseyProperties)
 294 spring.jersey.application-path= # Path that serves as the base URI for the application. Overrides the value of "@ApplicationPath" if specified.
 295 spring.jersey.filter.order=0 # Jersey filter chain order.
 296 spring.jersey.init.*= # Init parameters to pass to Jersey via the servlet or filter.
 297 spring.jersey.servlet.load-on-startup=-1 # Load on startup priority of the Jersey servlet.
 298 spring.jersey.type=servlet # Jersey integration type.
 299 
 300 # SPRING LDAP (LdapProperties)
 301 spring.ldap.urls= # LDAP URLs of the server.
 302 spring.ldap.base= # Base suffix from which all operations should originate.
 303 spring.ldap.username= # Login user of the server.
 304 spring.ldap.password= # Login password of the server.
 305 spring.ldap.base-environment.*= # LDAP specification settings.
 306 
 307 # EMBEDDED LDAP (EmbeddedLdapProperties)
 308 spring.ldap.embedded.port= # Embedded LDAP port.
 309 spring.ldap.embedded.credential.username= # Embedded LDAP username.
 310 spring.ldap.embedded.credential.password= # Embedded LDAP password.
 311 spring.ldap.embedded.base-dn= # The base DN
 312 spring.ldap.embedded.ldif=classpath:schema.ldif # Schema (LDIF) script resource reference.
 313 
 314 # SPRING MOBILE DEVICE VIEWS (DeviceDelegatingViewResolverAutoConfiguration)
 315 spring.mobile.devicedelegatingviewresolver.enable-fallback=false # Enable support for fallback resolution.
 316 spring.mobile.devicedelegatingviewresolver.enabled=false # Enable device view resolver.
 317 spring.mobile.devicedelegatingviewresolver.mobile-prefix=mobile/ # Prefix that gets prepended to view names for mobile devices.
 318 spring.mobile.devicedelegatingviewresolver.mobile-suffix= # Suffix that gets appended to view names for mobile devices.
 319 spring.mobile.devicedelegatingviewresolver.normal-prefix= # Prefix that gets prepended to view names for normal devices.
 320 spring.mobile.devicedelegatingviewresolver.normal-suffix= # Suffix that gets appended to view names for normal devices.
 321 spring.mobile.devicedelegatingviewresolver.tablet-prefix=tablet/ # Prefix that gets prepended to view names for tablet devices.
 322 spring.mobile.devicedelegatingviewresolver.tablet-suffix= # Suffix that gets appended to view names for tablet devices.
 323 
 324 # SPRING MOBILE SITE PREFERENCE (SitePreferenceAutoConfiguration)
 325 spring.mobile.sitepreference.enabled=true # Enable SitePreferenceHandler.
 326 
 327 # MUSTACHE TEMPLATES (MustacheAutoConfiguration)
 328 spring.mustache.allow-request-override= # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
 329 spring.mustache.allow-session-override= # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
 330 spring.mustache.cache= # Enable template caching.
 331 spring.mustache.charset= # Template encoding.
 332 spring.mustache.check-template-location= # Check that the templates location exists.
 333 spring.mustache.content-type= # Content-Type value.
 334 spring.mustache.enabled= # Enable MVC view resolution for this technology.
 335 spring.mustache.expose-request-attributes= # Set whether all request attributes should be added to the model prior to merging with the template.
 336 spring.mustache.expose-session-attributes= # Set whether all HttpSession attributes should be added to the model prior to merging with the template.
 337 spring.mustache.expose-spring-macro-helpers= # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".
 338 spring.mustache.prefix=classpath:/templates/ # Prefix to apply to template names.
 339 spring.mustache.request-context-attribute= # Name of the RequestContext attribute for all views.
 340 spring.mustache.suffix=.html # Suffix to apply to template names.
 341 spring.mustache.view-names= # White list of view names that can be resolved.
 342 
 343 # SPRING MVC (WebMvcProperties)
 344 spring.mvc.async.request-timeout= # Amount of time (in milliseconds) before asynchronous request handling times out.
 345 spring.mvc.date-format= # Date format to use. For instance `dd/MM/yyyy`.
 346 spring.mvc.dispatch-trace-request=false # Dispatch TRACE requests to the FrameworkServlet doService method.
 347 spring.mvc.dispatch-options-request=true # Dispatch OPTIONS requests to the FrameworkServlet doService method.
 348 spring.mvc.favicon.enabled=true # Enable resolution of favicon.ico.
 349 spring.mvc.formcontent.putfilter.enabled=true # Enable Spring's HttpPutFormContentFilter.
 350 spring.mvc.ignore-default-model-on-redirect=true # If the content of the "default" model should be ignored during redirect scenarios.
 351 spring.mvc.locale= # Locale to use. By default, this locale is overridden by the "Accept-Language" header.
 352 spring.mvc.locale-resolver=accept-header # Define how the locale should be resolved.
 353 spring.mvc.log-resolved-exception=false # Enable warn logging of exceptions resolved by a "HandlerExceptionResolver".
 354 spring.mvc.media-types.*= # Maps file extensions to media types for content negotiation.
 355 spring.mvc.message-codes-resolver-format= # Formatting strategy for message codes. For instance `PREFIX_ERROR_CODE`.
 356 spring.mvc.servlet.load-on-startup=-1 # Load on startup priority of the Spring Web Services servlet.
 357 spring.mvc.static-path-pattern=/** # Path pattern used for static resources.
 358 spring.mvc.throw-exception-if-no-handler-found=false # If a "NoHandlerFoundException" should be thrown if no Handler was found to process a request.
 359 spring.mvc.view.prefix= # Spring MVC view prefix.
 360 spring.mvc.view.suffix= # Spring MVC view suffix.
 361 
 362 # SPRING RESOURCES HANDLING (ResourceProperties)
 363 spring.resources.add-mappings=true # Enable default resource handling.
 364 spring.resources.cache-period= # Cache period for the resources served by the resource handler, in seconds.
 365 spring.resources.chain.cache=true # Enable caching in the Resource chain.
 366 spring.resources.chain.enabled= # Enable the Spring Resource Handling chain. Disabled by default unless at least one strategy has been enabled.
 367 spring.resources.chain.gzipped=false # Enable resolution of already gzipped resources.
 368 spring.resources.chain.html-application-cache=false # Enable HTML5 application cache manifest rewriting.
 369 spring.resources.chain.strategy.content.enabled=false # Enable the content Version Strategy.
 370 spring.resources.chain.strategy.content.paths=/** # Comma-separated list of patterns to apply to the Version Strategy.
 371 spring.resources.chain.strategy.fixed.enabled=false # Enable the fixed Version Strategy.
 372 spring.resources.chain.strategy.fixed.paths=/** # Comma-separated list of patterns to apply to the Version Strategy.
 373 spring.resources.chain.strategy.fixed.version= # Version string to use for the Version Strategy.
 374 spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ # Locations of static resources.
 375 
 376 # SPRING SESSION (SessionProperties)
 377 spring.session.hazelcast.flush-mode=on-save # Sessions flush mode.
 378 spring.session.hazelcast.map-name=spring:session:sessions # Name of the map used to store sessions.
 379 spring.session.jdbc.initializer.enabled= # Create the required session tables on startup if necessary. Enabled automatically if the default table name is set or a custom schema is configured.
 380 spring.session.jdbc.schema=classpath:org/springframework/session/jdbc/schema-@@platform@@.sql # Path to the SQL file to use to initialize the database schema.
 381 spring.session.jdbc.table-name=SPRING_SESSION # Name of database table used to store sessions.
 382 spring.session.mongo.collection-name=sessions # Collection name used to store sessions.
 383 spring.session.redis.flush-mode=on-save # Sessions flush mode.
 384 spring.session.redis.namespace= # Namespace for keys used to store sessions.
 385 spring.session.store-type= # Session store type.
 386 
 387 # SPRING SOCIAL (SocialWebAutoConfiguration)
 388 spring.social.auto-connection-views=false # Enable the connection status view for supported providers.
 389 
 390 # SPRING SOCIAL FACEBOOK (FacebookAutoConfiguration)
 391 spring.social.facebook.app-id= # your application's Facebook App ID
 392 spring.social.facebook.app-secret= # your application's Facebook App Secret
 393 
 394 # SPRING SOCIAL LINKEDIN (LinkedInAutoConfiguration)
 395 spring.social.linkedin.app-id= # your application's LinkedIn App ID
 396 spring.social.linkedin.app-secret= # your application's LinkedIn App Secret
 397 
 398 # SPRING SOCIAL TWITTER (TwitterAutoConfiguration)
 399 spring.social.twitter.app-id= # your application's Twitter App ID
 400 spring.social.twitter.app-secret= # your application's Twitter App Secret
 401 
 402 # THYMELEAF (ThymeleafAutoConfiguration)
 403 spring.thymeleaf.cache=true # Enable template caching.
 404 spring.thymeleaf.check-template=true # Check that the template exists before rendering it.
 405 spring.thymeleaf.check-template-location=true # Check that the templates location exists.
 406 spring.thymeleaf.content-type=text/html # Content-Type value.
 407 spring.thymeleaf.enabled=true # Enable MVC Thymeleaf view resolution.
 408 spring.thymeleaf.encoding=UTF-8 # Template encoding.
 409 spring.thymeleaf.excluded-view-names= # Comma-separated list of view names that should be excluded from resolution.
 410 spring.thymeleaf.mode=HTML5 # Template mode to be applied to templates. See also StandardTemplateModeHandlers.
 411 spring.thymeleaf.prefix=classpath:/templates/ # Prefix that gets prepended to view names when building a URL.
 412 spring.thymeleaf.suffix=.html # Suffix that gets appended to view names when building a URL.
 413 spring.thymeleaf.template-resolver-order= # Order of the template resolver in the chain.
 414 spring.thymeleaf.view-names= # Comma-separated list of view names that can be resolved.
 415 
 416 # SPRING WEB SERVICES (WebServicesProperties)
 417 spring.webservices.path=/services # Path that serves as the base URI for the services.
 418 spring.webservices.servlet.init= # Servlet init parameters to pass to Spring Web Services.
 419 spring.webservices.servlet.load-on-startup=-1 # Load on startup priority of the Spring Web Services servlet.
 420 
 421 
 422 
 423 # ----------------------------------------
 424 # SECURITY PROPERTIES
 425 # ----------------------------------------
 426 # SECURITY (SecurityProperties)
 427 security.basic.authorize-mode=role # Security authorize mode to apply.
 428 security.basic.enabled=true # Enable basic authentication.
 429 security.basic.path=/** # Comma-separated list of paths to secure.
 430 security.basic.realm=Spring # HTTP basic realm name.
 431 security.enable-csrf=false # Enable Cross Site Request Forgery support.
 432 security.filter-order=0 # Security filter chain order.
 433 security.filter-dispatcher-types=ASYNC, FORWARD, INCLUDE, REQUEST # Security filter chain dispatcher types.
 434 security.headers.cache=true # Enable cache control HTTP headers.
 435 security.headers.content-security-policy= # Value for content security policy header.
 436 security.headers.content-security-policy-mode=default # Content security policy mode.
 437 security.headers.content-type=true # Enable "X-Content-Type-Options" header.
 438 security.headers.frame=true # Enable "X-Frame-Options" header.
 439 security.headers.hsts=all # HTTP Strict Transport Security (HSTS) mode (none, domain, all).
 440 security.headers.xss=true # Enable cross site scripting (XSS) protection.
 441 security.ignored= # Comma-separated list of paths to exclude from the default secured paths.
 442 security.require-ssl=false # Enable secure channel for all requests.
 443 security.sessions=stateless # Session creation policy (always, never, if_required, stateless).
 444 security.user.name=user # Default user name.
 445 security.user.password= # Password for the default user name. A random password is logged on startup by default.
 446 security.user.role=USER # Granted roles for the default user name.
 447 
 448 # SECURITY OAUTH2 CLIENT (OAuth2ClientProperties)
 449 security.oauth2.client.client-id= # OAuth2 client id.
 450 security.oauth2.client.client-secret= # OAuth2 client secret. A random secret is generated by default
 451 
 452 # SECURITY OAUTH2 RESOURCES (ResourceServerProperties)
 453 security.oauth2.resource.filter-order= # The order of the filter chain used to authenticate tokens.
 454 security.oauth2.resource.id= # Identifier of the resource.
 455 security.oauth2.resource.jwt.key-uri= # The URI of the JWT token. Can be set if the value is not available and the key is public.
 456 security.oauth2.resource.jwt.key-value= # The verification key of the JWT token. Can either be a symmetric secret or PEM-encoded RSA public key.
 457 security.oauth2.resource.prefer-token-info=true # Use the token info, can be set to false to use the user info.
 458 security.oauth2.resource.service-id=resource #
 459 security.oauth2.resource.token-info-uri= # URI of the token decoding endpoint.
 460 security.oauth2.resource.token-type= # The token type to send when using the userInfoUri.
 461 security.oauth2.resource.user-info-uri= # URI of the user endpoint.
 462 
 463 # SECURITY OAUTH2 SSO (OAuth2SsoProperties)
 464 security.oauth2.sso.filter-order= # Filter order to apply if not providing an explicit WebSecurityConfigurerAdapter
 465 security.oauth2.sso.login-path=/login # Path to the login page, i.e. the one that triggers the redirect to the OAuth2 Authorization Server
 466 
 467 
 468 # ----------------------------------------
 469 # DATA PROPERTIES
 470 # ----------------------------------------
 471 
 472 # FLYWAY (FlywayProperties)
 473 flyway.baseline-description= #
 474 flyway.baseline-version=1 # version to start migration
 475 flyway.baseline-on-migrate= #
 476 flyway.check-location=false # Check that migration scripts location exists.
 477 flyway.clean-on-validation-error= #
 478 flyway.enabled=true # Enable flyway.
 479 flyway.encoding= #
 480 flyway.ignore-failed-future-migration= #
 481 flyway.init-sqls= # SQL statements to execute to initialize a connection immediately after obtaining it.
 482 flyway.locations=classpath:db/migration # locations of migrations scripts
 483 flyway.out-of-order= #
 484 flyway.password= # JDBC password if you want Flyway to create its own DataSource
 485 flyway.placeholder-prefix= #
 486 flyway.placeholder-replacement= #
 487 flyway.placeholder-suffix= #
 488 flyway.placeholders.*= #
 489 flyway.schemas= # schemas to update
 490 flyway.sql-migration-prefix=V #
 491 flyway.sql-migration-separator= #
 492 flyway.sql-migration-suffix=.sql #
 493 flyway.table= #
 494 flyway.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used.
 495 flyway.user= # Login user of the database to migrate.
 496 flyway.validate-on-migrate= #
 497 
 498 # LIQUIBASE (LiquibaseProperties)
 499 liquibase.change-log=classpath:/db/changelog/db.changelog-master.yaml # Change log configuration path.
 500 liquibase.check-change-log-location=true # Check the change log location exists.
 501 liquibase.contexts= # Comma-separated list of runtime contexts to use.
 502 liquibase.default-schema= # Default database schema.
 503 liquibase.drop-first=false # Drop the database schema first.
 504 liquibase.enabled=true # Enable liquibase support.
 505 liquibase.labels= # Comma-separated list of runtime labels to use.
 506 liquibase.parameters.*= # Change log parameters.
 507 liquibase.password= # Login password of the database to migrate.
 508 liquibase.rollback-file= # File to which rollback SQL will be written when an update is performed.
 509 liquibase.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used.
 510 liquibase.user= # Login user of the database to migrate.
 511 
 512 # COUCHBASE (CouchbaseProperties)
 513 spring.couchbase.bootstrap-hosts= # Couchbase nodes (host or IP address) to bootstrap from.
 514 spring.couchbase.bucket.name=default # Name of the bucket to connect to.
 515 spring.couchbase.bucket.password=  # Password of the bucket.
 516 spring.couchbase.env.endpoints.key-value=1 # Number of sockets per node against the Key/value service.
 517 spring.couchbase.env.endpoints.query=1 # Number of sockets per node against the Query (N1QL) service.
 518 spring.couchbase.env.endpoints.view=1 # Number of sockets per node against the view service.
 519 spring.couchbase.env.ssl.enabled= # Enable SSL support. Enabled automatically if a "keyStore" is provided unless specified otherwise.
 520 spring.couchbase.env.ssl.key-store= # Path to the JVM key store that holds the certificates.
 521 spring.couchbase.env.ssl.key-store-password= # Password used to access the key store.
 522 spring.couchbase.env.timeouts.connect=5000 # Bucket connections timeout in milliseconds.
 523 spring.couchbase.env.timeouts.key-value=2500 # Blocking operations performed on a specific key timeout in milliseconds.
 524 spring.couchbase.env.timeouts.query=7500 # N1QL query operations timeout in milliseconds.
 525 spring.couchbase.env.timeouts.socket-connect=1000 # Socket connect connections timeout in milliseconds.
 526 spring.couchbase.env.timeouts.view=7500 # Regular and geospatial view operations timeout in milliseconds.
 527 
 528 # DAO (PersistenceExceptionTranslationAutoConfiguration)
 529 spring.dao.exceptiontranslation.enabled=true # Enable the PersistenceExceptionTranslationPostProcessor.
 530 
 531 # CASSANDRA (CassandraProperties)
 532 spring.data.cassandra.cluster-name= # Name of the Cassandra cluster.
 533 spring.data.cassandra.compression=none # Compression supported by the Cassandra binary protocol.
 534 spring.data.cassandra.connect-timeout-millis= # Socket option: connection time out.
 535 spring.data.cassandra.consistency-level= # Queries consistency level.
 536 spring.data.cassandra.contact-points=localhost # Comma-separated list of cluster node addresses.
 537 spring.data.cassandra.fetch-size= # Queries default fetch size.
 538 spring.data.cassandra.keyspace-name= # Keyspace name to use.
 539 spring.data.cassandra.load-balancing-policy= # Class name of the load balancing policy.
 540 spring.data.cassandra.port= # Port of the Cassandra server.
 541 spring.data.cassandra.password= # Login password of the server.
 542 spring.data.cassandra.read-timeout-millis= # Socket option: read time out.
 543 spring.data.cassandra.reconnection-policy= # Reconnection policy class.
 544 spring.data.cassandra.retry-policy= # Class name of the retry policy.
 545 spring.data.cassandra.serial-consistency-level= # Queries serial consistency level.
 546 spring.data.cassandra.schema-action=none # Schema action to take at startup.
 547 spring.data.cassandra.ssl=false # Enable SSL support.
 548 spring.data.cassandra.username= # Login user of the server.
 549 
 550 # DATA COUCHBASE (CouchbaseDataProperties)
 551 spring.data.couchbase.auto-index=false # Automatically create views and indexes.
 552 spring.data.couchbase.consistency=read-your-own-writes # Consistency to apply by default on generated queries.
 553 spring.data.couchbase.repositories.enabled=true # Enable Couchbase repositories.
 554 
 555 # ELASTICSEARCH (ElasticsearchProperties)
 556 spring.data.elasticsearch.cluster-name=elasticsearch # Elasticsearch cluster name.
 557 spring.data.elasticsearch.cluster-nodes= # Comma-separated list of cluster node addresses. If not specified, starts a client node.
 558 spring.data.elasticsearch.properties.*= # Additional properties used to configure the client.
 559 spring.data.elasticsearch.repositories.enabled=true # Enable Elasticsearch repositories.
 560 
 561 # DATA LDAP
 562 spring.data.ldap.repositories.enabled=true # Enable LDAP repositories.
 563 
 564 # MONGODB (MongoProperties)
 565 spring.data.mongodb.authentication-database= # Authentication database name.
 566 spring.data.mongodb.database=test # Database name.
 567 spring.data.mongodb.field-naming-strategy= # Fully qualified name of the FieldNamingStrategy to use.
 568 spring.data.mongodb.grid-fs-database= # GridFS database name.
 569 spring.data.mongodb.host=localhost # Mongo server host. Cannot be set with uri.
 570 spring.data.mongodb.password= # Login password of the mongo server. Cannot be set with uri.
 571 spring.data.mongodb.port=27017 # Mongo server port. Cannot be set with uri.
 572 spring.data.mongodb.repositories.enabled=true # Enable Mongo repositories.
 573 spring.data.mongodb.uri=mongodb://localhost/test # Mongo database URI. Cannot be set with host, port and credentials.
 574 spring.data.mongodb.username= # Login user of the mongo server. Cannot be set with uri.
 575 
 576 # DATA REDIS
 577 spring.data.redis.repositories.enabled=true # Enable Redis repositories.
 578 
 579 # NEO4J (Neo4jProperties)
 580 spring.data.neo4j.compiler= # Compiler to use.
 581 spring.data.neo4j.embedded.enabled=true # Enable embedded mode if the embedded driver is available.
 582 spring.data.neo4j.open-in-view=false # Register OpenSessionInViewInterceptor. Binds a Neo4j Session to the thread for the entire processing of the request.
 583 spring.data.neo4j.password= # Login password of the server.
 584 spring.data.neo4j.repositories.enabled=true # Enable Neo4j repositories.
 585 spring.data.neo4j.uri= # URI used by the driver. Auto-detected by default.
 586 spring.data.neo4j.username= # Login user of the server.
 587 
 588 # DATA REST (RepositoryRestProperties)
 589 spring.data.rest.base-path= # Base path to be used by Spring Data REST to expose repository resources.
 590 spring.data.rest.default-page-size= # Default size of pages.
 591 spring.data.rest.detection-strategy=default # Strategy to use to determine which repositories get exposed.
 592 spring.data.rest.enable-enum-translation= # Enable enum value translation via the Spring Data REST default resource bundle.
 593 spring.data.rest.limit-param-name= # Name of the URL query string parameter that indicates how many results to return at once.
 594 spring.data.rest.max-page-size= # Maximum size of pages.
 595 spring.data.rest.page-param-name= # Name of the URL query string parameter that indicates what page to return.
 596 spring.data.rest.return-body-on-create= # Return a response body after creating an entity.
 597 spring.data.rest.return-body-on-update= # Return a response body after updating an entity.
 598 spring.data.rest.sort-param-name= # Name of the URL query string parameter that indicates what direction to sort results.
 599 
 600 # SOLR (SolrProperties)
 601 spring.data.solr.host=http://127.0.0.1:8983/solr # Solr host. Ignored if "zk-host" is set.
 602 spring.data.solr.repositories.enabled=true # Enable Solr repositories.
 603 spring.data.solr.zk-host= # ZooKeeper host address in the form HOST:PORT.
 604 
 605 # DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
 606 spring.datasource.continue-on-error=false # Do not stop if an error occurs while initializing the database.
 607 spring.datasource.data= # Data (DML) script resource references.
 608 spring.datasource.data-username= # User of the database to execute DML scripts (if different).
 609 spring.datasource.data-password= # Password of the database to execute DML scripts (if different).
 610 spring.datasource.dbcp2.*= # Commons DBCP2 specific settings
 611 spring.datasource.driver-class-name= # Fully qualified name of the JDBC driver. Auto-detected based on the URL by default.
 612 spring.datasource.generate-unique-name=false # Generate a random datasource name.
 613 spring.datasource.hikari.*= # Hikari specific settings
 614 spring.datasource.initialize=true # Populate the database using 'data.sql'.
 615 spring.datasource.jmx-enabled=false # Enable JMX support (if provided by the underlying pool).
 616 spring.datasource.jndi-name= # JNDI location of the datasource. Class, url, username & password are ignored when set.
 617 spring.datasource.name=testdb # Name of the datasource.
 618 spring.datasource.password= # Login password of the database.
 619 spring.datasource.platform=all # Platform to use in the schema resource (schema-${platform}.sql).
 620 spring.datasource.schema= # Schema (DDL) script resource references.
 621 spring.datasource.schema-username= # User of the database to execute DDL scripts (if different).
 622 spring.datasource.schema-password= # Password of the database to execute DDL scripts (if different).
 623 spring.datasource.separator=; # Statement separator in SQL initialization scripts.
 624 spring.datasource.sql-script-encoding= # SQL scripts encoding.
 625 spring.datasource.tomcat.*= # Tomcat datasource specific settings
 626 spring.datasource.type= # Fully qualified name of the connection pool implementation to use. By default, it is auto-detected from the classpath.
 627 spring.datasource.url= # JDBC url of the database.
 628 spring.datasource.username=
 629 
 630 # JEST (Elasticsearch HTTP client) (JestProperties)
 631 spring.elasticsearch.jest.connection-timeout=3000 # Connection timeout in milliseconds.
 632 spring.elasticsearch.jest.multi-threaded=true # Enable connection requests from multiple execution threads.
 633 spring.elasticsearch.jest.password= # Login password.
 634 spring.elasticsearch.jest.proxy.host= # Proxy host the HTTP client should use.
 635 spring.elasticsearch.jest.proxy.port= # Proxy port the HTTP client should use.
 636 spring.elasticsearch.jest.read-timeout=3000 # Read timeout in milliseconds.
 637 spring.elasticsearch.jest.uris=http://localhost:9200 # Comma-separated list of the Elasticsearch instances to use.
 638 spring.elasticsearch.jest.username= # Login user.
 639 
 640 # H2 Web Console (H2ConsoleProperties)
 641 spring.h2.console.enabled=false # Enable the console.
 642 spring.h2.console.path=/h2-console # Path at which the console will be available.
 643 spring.h2.console.settings.trace=false # Enable trace output.
 644 spring.h2.console.settings.web-allow-others=false # Enable remote access.
 645 
 646 # JOOQ (JooqAutoConfiguration)
 647 spring.jooq.sql-dialect= # SQLDialect JOOQ used when communicating with the configured datasource. For instance `POSTGRES`
 648 
 649 # JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration)
 650 spring.data.jpa.repositories.enabled=true # Enable JPA repositories.
 651 spring.jpa.database= # Target database to operate on, auto-detected by default. Can be alternatively set using the "databasePlatform" property.
 652 spring.jpa.database-platform= # Name of the target database to operate on, auto-detected by default. Can be alternatively set using the "Database" enum.
 653 spring.jpa.generate-ddl=false # Initialize the schema on startup.
 654 spring.jpa.hibernate.ddl-auto= # DDL mode. This is actually a shortcut for the "hibernate.hbm2ddl.auto" property. Default to "create-drop" when using an embedded database, "none" otherwise.
 655 spring.jpa.hibernate.naming.implicit-strategy= # Hibernate 5 implicit naming strategy fully qualified name.
 656 spring.jpa.hibernate.naming.physical-strategy= # Hibernate 5 physical naming strategy fully qualified name.
 657 spring.jpa.hibernate.naming.strategy= # Hibernate 4 naming strategy fully qualified name. Not supported with Hibernate 5.
 658 spring.jpa.hibernate.use-new-id-generator-mappings= # Use Hibernate's newer IdentifierGenerator for AUTO, TABLE and SEQUENCE.
 659 spring.jpa.open-in-view=true # Register OpenEntityManagerInViewInterceptor. Binds a JPA EntityManager to the thread for the entire processing of the request.
 660 spring.jpa.properties.*= # Additional native properties to set on the JPA provider.
 661 spring.jpa.show-sql=false # Enable logging of SQL statements.
 662 
 663 # JTA (JtaAutoConfiguration)
 664 spring.jta.enabled=true # Enable JTA support.
 665 spring.jta.log-dir= # Transaction logs directory.
 666 spring.jta.transaction-manager-id= # Transaction manager unique identifier.
 667 
 668 # ATOMIKOS (AtomikosProperties)
 669 spring.jta.atomikos.connectionfactory.borrow-connection-timeout=30 # Timeout, in seconds, for borrowing connections from the pool.
 670 spring.jta.atomikos.connectionfactory.ignore-session-transacted-flag=true # Whether or not to ignore the transacted flag when creating session.
 671 spring.jta.atomikos.connectionfactory.local-transaction-mode=false # Whether or not local transactions are desired.
 672 spring.jta.atomikos.connectionfactory.maintenance-interval=60 # The time, in seconds, between runs of the pool's maintenance thread.
 673 spring.jta.atomikos.connectionfactory.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.
 674 spring.jta.atomikos.connectionfactory.max-lifetime=0 # The time, in seconds, that a connection can be pooled for before being destroyed. 0 denotes no limit.
 675 spring.jta.atomikos.connectionfactory.max-pool-size=1 # The maximum size of the pool.
 676 spring.jta.atomikos.connectionfactory.min-pool-size=1 # The minimum size of the pool.
 677 spring.jta.atomikos.connectionfactory.reap-timeout=0 # The reap timeout, in seconds, for borrowed connections. 0 denotes no limit.
 678 spring.jta.atomikos.connectionfactory.unique-resource-name=jmsConnectionFactory # The unique name used to identify the resource during recovery.
 679 spring.jta.atomikos.datasource.borrow-connection-timeout=30 # Timeout, in seconds, for borrowing connections from the pool.
 680 spring.jta.atomikos.datasource.default-isolation-level= # Default isolation level of connections provided by the pool.
 681 spring.jta.atomikos.datasource.login-timeout= # Timeout, in seconds, for establishing a database connection.
 682 spring.jta.atomikos.datasource.maintenance-interval=60 # The time, in seconds, between runs of the pool's maintenance thread.
 683 spring.jta.atomikos.datasource.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.
 684 spring.jta.atomikos.datasource.max-lifetime=0 # The time, in seconds, that a connection can be pooled for before being destroyed. 0 denotes no limit.
 685 spring.jta.atomikos.datasource.max-pool-size=1 # The maximum size of the pool.
 686 spring.jta.atomikos.datasource.min-pool-size=1 # The minimum size of the pool.
 687 spring.jta.atomikos.datasource.reap-timeout=0 # The reap timeout, in seconds, for borrowed connections. 0 denotes no limit.
 688 spring.jta.atomikos.datasource.test-query= # SQL query or statement used to validate a connection before returning it.
 689 spring.jta.atomikos.datasource.unique-resource-name=dataSource # The unique name used to identify the resource during recovery.
 690 spring.jta.atomikos.properties.checkpoint-interval=500 # Interval between checkpoints.
 691 spring.jta.atomikos.properties.console-file-count=1 # Number of debug logs files that can be created.
 692 spring.jta.atomikos.properties.console-file-limit=-1 # How many bytes can be stored at most in debug logs files.
 693 spring.jta.atomikos.properties.console-file-name=tm.out # Debug logs file name.
 694 spring.jta.atomikos.properties.console-log-level=warn # Console log level.
 695 spring.jta.atomikos.properties.default-jta-timeout=10000 # Default timeout for JTA transactions.
 696 spring.jta.atomikos.properties.enable-logging=true # Enable disk logging.
 697 spring.jta.atomikos.properties.force-shutdown-on-vm-exit=false # Specify if a VM shutdown should trigger forced shutdown of the transaction core.
 698 spring.jta.atomikos.properties.log-base-dir= # Directory in which the log files should be stored.
 699 spring.jta.atomikos.properties.log-base-name=tmlog # Transactions log file base name.
 700 spring.jta.atomikos.properties.max-actives=50 # Maximum number of active transactions.
 701 spring.jta.atomikos.properties.max-timeout=300000 # Maximum timeout (in milliseconds) that can be allowed for transactions.
 702 spring.jta.atomikos.properties.output-dir= # Directory in which to store the debug log files.
 703 spring.jta.atomikos.properties.serial-jta-transactions=true # Specify if sub-transactions should be joined when possible.
 704 spring.jta.atomikos.properties.service= # Transaction manager implementation that should be started.
 705 spring.jta.atomikos.properties.threaded-two-phase-commit=true # Use different (and concurrent) threads for two-phase commit on the participating resources.
 706 spring.jta.atomikos.properties.transaction-manager-unique-name= # Transaction manager's unique name.
 707 
 708 # BITRONIX
 709 spring.jta.bitronix.connectionfactory.acquire-increment=1 # Number of connections to create when growing the pool.
 710 spring.jta.bitronix.connectionfactory.acquisition-interval=1 # Time, in seconds, to wait before trying to acquire a connection again after an invalid connection was acquired.
 711 spring.jta.bitronix.connectionfactory.acquisition-timeout=30 # Timeout, in seconds, for acquiring connections from the pool.
 712 spring.jta.bitronix.connectionfactory.allow-local-transactions=true # Whether or not the transaction manager should allow mixing XA and non-XA transactions.
 713 spring.jta.bitronix.connectionfactory.apply-transaction-timeout=false # Whether or not the transaction timeout should be set on the XAResource when it is enlisted.
 714 spring.jta.bitronix.connectionfactory.automatic-enlisting-enabled=true # Whether or not resources should be enlisted and delisted automatically.
 715 spring.jta.bitronix.connectionfactory.cache-producers-consumers=true # Whether or not produces and consumers should be cached.
 716 spring.jta.bitronix.connectionfactory.defer-connection-release=true # Whether or not the provider can run many transactions on the same connection and supports transaction interleaving.
 717 spring.jta.bitronix.connectionfactory.ignore-recovery-failures=false # Whether or not recovery failures should be ignored.
 718 spring.jta.bitronix.connectionfactory.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.
 719 spring.jta.bitronix.connectionfactory.max-pool-size=10 # The maximum size of the pool. 0 denotes no limit.
 720 spring.jta.bitronix.connectionfactory.min-pool-size=0 # The minimum size of the pool.
 721 spring.jta.bitronix.connectionfactory.password= # The password to use to connect to the JMS provider.
 722 spring.jta.bitronix.connectionfactory.share-transaction-connections=false #  Whether or not connections in the ACCESSIBLE state can be shared within the context of a transaction.
 723 spring.jta.bitronix.connectionfactory.test-connections=true # Whether or not connections should be tested when acquired from the pool.
 724 spring.jta.bitronix.connectionfactory.two-pc-ordering-position=1 # The position that this resource should take during two-phase commit (always first is Integer.MIN_VALUE, always last is Integer.MAX_VALUE).
 725 spring.jta.bitronix.connectionfactory.unique-name=jmsConnectionFactory # The unique name used to identify the resource during recovery.
 726 spring.jta.bitronix.connectionfactory.use-tm-join=true Whether or not TMJOIN should be used when starting XAResources.
 727 spring.jta.bitronix.connectionfactory.user= # The user to use to connect to the JMS provider.
 728 spring.jta.bitronix.datasource.acquire-increment=1 # Number of connections to create when growing the pool.
 729 spring.jta.bitronix.datasource.acquisition-interval=1 # Time, in seconds, to wait before trying to acquire a connection again after an invalid connection was acquired.
 730 spring.jta.bitronix.datasource.acquisition-timeout=30 # Timeout, in seconds, for acquiring connections from the pool.
 731 spring.jta.bitronix.datasource.allow-local-transactions=true # Whether or not the transaction manager should allow mixing XA and non-XA transactions.
 732 spring.jta.bitronix.datasource.apply-transaction-timeout=false # Whether or not the transaction timeout should be set on the XAResource when it is enlisted.
 733 spring.jta.bitronix.datasource.automatic-enlisting-enabled=true # Whether or not resources should be enlisted and delisted automatically.
 734 spring.jta.bitronix.datasource.cursor-holdability= # The default cursor holdability for connections.
 735 spring.jta.bitronix.datasource.defer-connection-release=true # Whether or not the database can run many transactions on the same connection and supports transaction interleaving.
 736 spring.jta.bitronix.datasource.enable-jdbc4-connection-test= # Whether or not Connection.isValid() is called when acquiring a connection from the pool.
 737 spring.jta.bitronix.datasource.ignore-recovery-failures=false # Whether or not recovery failures should be ignored.
 738 spring.jta.bitronix.datasource.isolation-level= # The default isolation level for connections.
 739 spring.jta.bitronix.datasource.local-auto-commit= # The default auto-commit mode for local transactions.
 740 spring.jta.bitronix.datasource.login-timeout= # Timeout, in seconds, for establishing a database connection.
 741 spring.jta.bitronix.datasource.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.
 742 spring.jta.bitronix.datasource.max-pool-size=10 # The maximum size of the pool. 0 denotes no limit.
 743 spring.jta.bitronix.datasource.min-pool-size=0 # The minimum size of the pool.
 744 spring.jta.bitronix.datasource.prepared-statement-cache-size=0 # The target size of the prepared statement cache. 0 disables the cache.
 745 spring.jta.bitronix.datasource.share-transaction-connections=false #  Whether or not connections in the ACCESSIBLE state can be shared within the context of a transaction.
 746 spring.jta.bitronix.datasource.test-query= # SQL query or statement used to validate a connection before returning it.
 747 spring.jta.bitronix.datasource.two-pc-ordering-position=1 # The position that this resource should take during two-phase commit (always first is Integer.MIN_VALUE, always last is Integer.MAX_VALUE).
 748 spring.jta.bitronix.datasource.unique-name=dataSource # The unique name used to identify the resource during recovery.
 749 spring.jta.bitronix.datasource.use-tm-join=true Whether or not TMJOIN should be used when starting XAResources.
 750 spring.jta.bitronix.properties.allow-multiple-lrc=false # Allow multiple LRC resources to be enlisted into the same transaction.
 751 spring.jta.bitronix.properties.asynchronous2-pc=false # Enable asynchronously execution of two phase commit.
 752 spring.jta.bitronix.properties.background-recovery-interval-seconds=60 # Interval in seconds at which to run the recovery process in the background.
 753 spring.jta.bitronix.properties.current-node-only-recovery=true # Recover only the current node.
 754 spring.jta.bitronix.properties.debug-zero-resource-transaction=false # Log the creation and commit call stacks of transactions executed without a single enlisted resource.
 755 spring.jta.bitronix.properties.default-transaction-timeout=60 # Default transaction timeout in seconds.
 756 spring.jta.bitronix.properties.disable-jmx=false # Enable JMX support.
 757 spring.jta.bitronix.properties.exception-analyzer= # Set the fully qualified name of the exception analyzer implementation to use.
 758 spring.jta.bitronix.properties.filter-log-status=false # Enable filtering of logs so that only mandatory logs are written.
 759 spring.jta.bitronix.properties.force-batching-enabled=true #  Set if disk forces are batched.
 760 spring.jta.bitronix.properties.forced-write-enabled=true # Set if logs are forced to disk.
 761 spring.jta.bitronix.properties.graceful-shutdown-interval=60 # Maximum amount of seconds the TM will wait for transactions to get done before aborting them at shutdown time.
 762 spring.jta.bitronix.properties.jndi-transaction-synchronization-registry-name= # JNDI name of the TransactionSynchronizationRegistry.
 763 spring.jta.bitronix.properties.jndi-user-transaction-name= # JNDI name of the UserTransaction.
 764 spring.jta.bitronix.properties.journal=disk # Name of the journal. Can be 'disk', 'null' or a class name.
 765 spring.jta.bitronix.properties.log-part1-filename=btm1.tlog # Name of the first fragment of the journal.
 766 spring.jta.bitronix.properties.log-part2-filename=btm2.tlog # Name of the second fragment of the journal.
 767 spring.jta.bitronix.properties.max-log-size-in-mb=2 # Maximum size in megabytes of the journal fragments.
 768 spring.jta.bitronix.properties.resource-configuration-filename= # ResourceLoader configuration file name.
 769 spring.jta.bitronix.properties.server-id= # ASCII ID that must uniquely identify this TM instance. Default to the machine's IP address.
 770 spring.jta.bitronix.properties.skip-corrupted-logs=false # Skip corrupted transactions log entries.
 771 spring.jta.bitronix.properties.warn-about-zero-resource-transaction=true # Log a warning for transactions executed without a single enlisted resource.
 772 
 773 # NARAYANA (NarayanaProperties)
 774 spring.jta.narayana.default-timeout=60 # Transaction timeout in seconds.
 775 spring.jta.narayana.expiry-scanners=com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner # Comma-separated list of expiry scanners.
 776 spring.jta.narayana.log-dir= # Transaction object store directory.
 777 spring.jta.narayana.one-phase-commit=true # Enable one phase commit optimisation.
 778 spring.jta.narayana.periodic-recovery-period=120 # Interval in which periodic recovery scans are performed in seconds.
 779 spring.jta.narayana.recovery-backoff-period=10 # Back off period between first and second phases of the recovery scan in seconds.
 780 spring.jta.narayana.recovery-db-pass= # Database password to be used by recovery manager.
 781 spring.jta.narayana.recovery-db-user= # Database username to be used by recovery manager.
 782 spring.jta.narayana.recovery-jms-pass= # JMS password to be used by recovery manager.
 783 spring.jta.narayana.recovery-jms-user= # JMS username to be used by recovery manager.
 784 spring.jta.narayana.recovery-modules= # Comma-separated list of recovery modules.
 785 spring.jta.narayana.transaction-manager-id=1 # Unique transaction manager id.
 786 spring.jta.narayana.xa-resource-orphan-filters=