本片文章是自己整理的springboot常用的注解,篇幅较长,请耐心阅读
一: Springboot常见的注解
@SpringBootApplication
package com.lpl.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
@SpringBootApplication注解是Spring Boot的核心注解,它其实是一个组合注解:
@ComponentScan
默认扫描@SpringBootApplication所在类的同级目录以及它的子目录
所以我们的启动类一般放在项目包的根目录,这样就能扫描到所有包下的配置。
@ImportRecourse
SpringBoot提倡零配置,即无xml配置,但是在实际项目中,可能有一些特殊要求你必须使用xml文件,这时候我们可以用@ImportRecourse注解来加载xml的配置文件。
如:@ImportRecourse({“classpath:config/mybatis.xml,confco/test.xml”}) 来加载mybatis的一些配置。
@PropertySource
@PropertySource用来加载properies文件。
@Value
加载properties文件中的value值
@Configuration @PropertySource("classpath:config/redis.properties") public class RedisConfig { @Value("${redis.hostName}") private String hostName; @Value("${redis.port}") private Integer port; @Value("${redis.password}") private String password; @Value("${redis.sentinel.host1}") private String senHost1; @Value("${redis.sentinel.port1}") private Integer senPort1; } 二: Springboot配置文件
1: 全局配置文件 application.yml
application.yml #----------------------------------------
#CORE PROPERTIES #----- ----------------------------------- debug = false #启用调试日志。 trace = false #启用跟踪日志。 #日志信息配置 logging.config = #日志配置文件的位置。例如,Logback的`classpath:logback.xml`。 logging.exception-conversion-word =%wEx #记录异常时使用的转换字。 logging.file = #日志文件名(例如,`myapp.log`)。名称可以是精确位置或相对于当前目录。 logging.file.max-history = 0 #要保留的归档日志文件的最大值。仅支持默认的logback设置。 logging.file.max-size = 10MB #最大日志文件大小。仅支持默认的logback设置。 logging.level。* =#日志级别严重等级映射。例如,`logging.level.org.springframework = DEBUG`。 logging.path = #日志文件的位置。例如,`/ var / log`。 logging.pattern.console = #用于输出到控制台的Appender模式。仅支持默认的Logback设置。 logging.pattern.dateformat = yyyy-MM-dd HH:mm:ss.SSS #日志日期格式的Appender模式。仅支持默认的Logback设置。 logging.pattern.file = #用于输出到文件的Appender模式。仅支持默认的Logback设置。 logging.pattern.level =%5p #日志级别的Appender模式。仅支持默认的Logback设置。 logging.register-shutdown-hook = false #在日志记录系统初始化时注册一个关闭钩子。 #邮件开发相关的配置(MailProperties) spring.mail.default-encoding = UTF-8 #默认MimeMessage编码。 spring.mail.host = #SMTP 服务器主机。例如,`smtp.example.com`。 spring.mail.jndi-name = #会话JNDI名称。设置时,优先于其他会话设置。 spring.mail.password = #SMTP 服务器的登录密码。 spring.mail.port = #SMTP 服务器端口。 spring.mail.properties。* = #其他JavaMail会话属性。 spring.mail.protocol = smtp #SMTP服务器使用的协议。 spring.mail.test-connection = false#是否在启动时测试邮件服务器是否可用。 spring.mail.username = #STP 服务器的登录用户。 #HTTP 编码(HttpEncodingProperties) spring.http.encoding.charset = UTF-8 #HTTP 请求和响应的字符集。如果未明确设置,则添加到“Content-Type”标头。 spring.http.encoding.enabled = true #是否启用http编码支持。 spring.http.encoding.force = #是否在HTTP请求和响应上强制编码到配置的字符集。 spring.http.encoding.force-request = #是否在HTTP请求中强制编码到配置的字符集。未指定“force”时,默认为true。 spring.http.encoding.force-response =#是否在HTTP响应中强制编码到配置的字符集。 spring.http.encoding.mapping = #用于编码映射的Locale。 #MULTIPART (MultipartProperties) spring.servlet.multipart.enabled = true #是否启用对分段上传的支持。 spring.servlet.multipart.file-size-threshold = 0 #将文件写入磁盘的阈值。值可以使用后缀“MB”或“KB”分别表示兆字节或千字节。 spring.servlet.multipart.location = #上传文件的中间位置。 spring.servlet.multipart.max-file-size = 1MB #最大文件大小。值可以使用后缀“MB”或“KB”分别表示兆字节或千字节。 spring.servlet.multipart.max-request-size = 10MB#最大请求大小。值可以使用后缀“MB”或“KB”分别表示兆字节或千字节。 spring.servlet.multipart.resolve-lazily = false #是否在文件或参数访问时懒惰地解析多部分请求。 #SPRING MVC(WebMvcProperties) spring.mvc.async.request-timeout = #异步请求处理 超时之前的时间。spring.mvc.contentnegotiation.favor-parameter = false #是否应使用请求参数(默认情况下为“format”)来确定请求的媒体类型。 spring.mvc.contentnegotiation.favor-path-extension = false #是否应使用URL路径中的路径扩展来确定请求的媒体类型。 spring.mvc.contentnegotiation.media-types。* = #映射内容协商的媒体类型的文件扩展名。例如,yml到text / yaml。 spring.mvc.contentnegotiation.parameter-name =#启用“favor-parameter”时要使用的查询参数名称。 spring.mvc.date-format = #要使用的日期格式。例如,`dd / MM / yyyy`。 spring.mvc.dispatch-trace-request = false #是否将TRACE请求分派给FrameworkServlet doService方法。 spring.mvc.dispatch-options-request = true #是否将OPTIONS请求分派给FrameworkServlet doService方法。 spring.mvc.favicon.enabled = true #是否启用favicon.ico的解析。 spring.mvc.formcontent.putfilter.enabled = true #是否启用Spring的HttpPutFormContentFilter。 spring.mvc.ignore-default-model-on-redirect = true#在重定向场景中是否应忽略“默认”模型的内容。 spring.mvc.locale = #要使用的语言环境。默认情况下,“Accept-Language”标头会覆盖此区域设置。 spring.mvc.locale-resolver = accept-header #定义应如何解析语言环境。 spring.mvc.log-resolved-exception = false #是否启用由“HandlerExceptionResolver”解析的异常的警告日志记录。 spring.mvc.message-codes-resolver-format = #格式化消息代码的策略。例如,`PREFIX_ERROR_CODE`。 spring.mvc.pathmatch.use-registered-suffix-pattern = false#后缀模式匹配是否仅适用于使用“spring.mvc.contentnegotiation.media-types。*”注册的扩展。 spring.mvc.pathmatch.use-suffix-pattern = false #在将模式与请求匹配时是否使用后缀模式匹配(“。*”)。 spring.mvc.servlet.load-on-startup = -1 #加载调度程序servlet的启动优先级。 spring.mvc.static-path-pattern = / ** #用于静态资源的路径模式。 spring.mvc.throw-exception-if-no-handler-found = false #如果没有找到Handler来处理请求,是否应该抛出“NoHandlerFoundException”。 spring.mvc.view.prefix = #Spring MVC视图前缀。 spring.mvc.view.suffix = #Spring MVC视图后缀。 #THYMELEAF(ThymeleafAutoConfiguration) spring.thymeleaf.cache = true #是否启用模板缓存。 spring.thymeleaf.check-template = true #在呈现模板之前是否检查模板是否存在。 spring.thymeleaf.check-template-location = true #是否检查模板位置是否存在。 spring.thymeleaf.enabled = true #是否为Web框架启用Thymeleaf视图解析。 spring.thymeleaf.enable-spring-el-compiler = false #在SpringEL表达式中启用SpringEL编译器。 spring.thymeleaf.encoding = UTF-8 #模板文件编码。 spring.thymeleaf.excluded-view-names = #逗号分隔的视图名称列表(允许的模式)应从分辨率中排除。 spring.thymeleaf.mode = HTML #要应用于模板的模板模式。另请参见Thymeleaf的TemplateMode枚举。 spring.thymeleaf.prefix = classpath:/ templates / #在构建URL时添加前缀以查看名称的前缀。 spring.thymeleaf.reactive.chunked-mode-view-names = #逗号分隔的视图名称列表(允许的模式)应该是设置最大块大小时在CHUNKED模式下执行的唯一视图名称。 spring.thymeleaf.reactive.full-mode-view-names =#逗号分隔的视图名称列表(允许的模式),即使设置了最大块大小,也应该在FULL模式下执行。 spring.thymeleaf.reactive.max-chunk-size = 0 #用于写入响应的数据缓冲区的最大大小(以字节为单位)。 spring.thymeleaf.reactive.media-types = #视图技术支持的媒体类型。 spring.thymeleaf.servlet.content-type = text / html #Content-Type写入HTTP响应的值。 spring.thymeleaf.suffix = .html #在构建URL时附加到视图名称的后缀。 spring.thymeleaf.template-resolver-order = #链中模板解析器的顺序。 spring.thymeleaf.view-名= #逗号分隔的视图名称列表(允许的模式),可以解析。 #MONGODB(MongoProperties) spring.data.mongodb.authentication-database = #认证数据库名称。 spring.data.mongodb.database = #数据库名称。 spring.data.mongodb.field-naming-strategy = #要使用的FieldNamingStrategy的完全限定名称。 spring.data.mongodb.grid-fs-database = #GridFS数据库名称。 spring.data.mongodb.host = #Mongo 服务器主机。无法使用URI设置。 spring.data.mongodb.password = #mongo 服务器的登录密码。无法使用URI设置。 spring.data.mongodb.port = #Mongo 服务器端口。无法使用URI设置。 spring.data.mongodb.repositories.type = auto #要启用的Mongo存储库的类型。 spring.data.mongodb.uri = mongodb:// localhost / test #Mongo数据库URI。无法使用主机,端口和凭据进行设置。 spring.data.mongodb.username = #mongo 服务器的登录用户。无法使用URI设置。 #JPA (JpaBaseConfiguration,HibernateJpaAutoConfiguration) spring.data.jpa.repositories.enabled = true #是否启用JPA存储库。 spring.jpa.database = #要操作的目标数据库,默认情况下自动检测。也可以使用“databasePlatform”属性进行设置。 spring.jpa.database-platform = #要操作的目标数据库的名称,默认情况下自动检测。也可以使用“Database”枚举来设置。 spring.jpa.generate-ddl = false #是否在启动时初始化架构。 spring.jpa.hibernate.ddl-auto =#DDL模式。这实际上是“hibernate.hbm2ddl.auto”属性的快捷方式。使用嵌入式数据库时未默认为“create-drop”且未检测到架构管理器。否则,默认为“none”。 spring.jpa.hibernate.naming.implicit-strategy = #隐式命名策略的完全限定名称。 spring.jpa.hibernate.naming.physical-strategy = #物理命名策略的完全限定名称。 spring.jpa.hibernate.use-new-id-generator-mappings = #是否将Hibernate的较新的IdentifierGenerator用于AUTO,TABLE和SEQUENCE。 spring.jpa.mapping-resources = #Mapping资源(相当于persistence.xml中的“mapping-file”条目)。 弹簧。= true #注册OpenEntityManagerInViewInterceptor。将JPA EntityManager绑定到线程以进行整个请求处理。 spring.jpa.properties。* = #要在JPA提供程序上设置的其他本机属性。 spring.jpa.show -sql = false #是否启用SQL语句的日志记录。 #REDIS(RedisProperties) spring.redis.cluster.max -redirects = #在群集中执行命令时要遵循的最大重定向数。 spring.redis.cluster.nodes = #逗号分隔的“host:port”对列表引导自。 spring.redis.database = 0 #连接工厂使用的数据库索引。 spring.redis.url = #连接URL。覆盖主机,端口和密码。用户被忽略。示例:redis:// user:password@example.com :6379 spring.redis.host = localhost #Redis服务器主机。 spring.redis.jedis.pool.max-active = 8#池在给定时间可以分配的最大连接数。使用负值无限制。 spring.redis.jedis.pool.max-idle = 8 #池中“空闲”连接的最大数量。使用负值表示无限数量的空闲连接。 spring.redis.jedis.pool.max -wait = -1ms #在池耗尽时,在抛出异常之前连接分配应该阻塞的最长时间。使用负值无限期阻止。 spring.redis.jedis.pool.min-idle = 0 #目标是池中维护的最小空闲连接数。此设置仅在其为正时才有效。 spring.redis.lettuce.pool.max-active = 8#池在给定时间可以分配的最大连接数。使用负值无限制。 spring.redis.lettuce.pool.max-idle = 8 #池中“空闲”连接的最大数量。使用负值表示无限数量的空闲连接。 spring.redis.lettuce.pool.max -wait = -1ms #在池耗尽时,在抛出异常之前连接分配应阻塞的最长时间。使用负值无限期阻止。 spring.redis.lettuce.pool.min-idle = 0 #目标是池中维护的最小空闲连接数。此设置仅在其为正时才有效。 spring.redis.lettuce.shutdown-timeout = 100ms#关机超时。 spring.redis.password = #redis服务器的登录密码。 spring.redis.port = 6379 #Redis服务器端口。 spring.redis.sentinel.master = #Redis服务器的名称。 spring.redis.sentinel.nodes = #逗号分隔的“host:port”对列表。 spring.redis.ssl = false #是否启用SSL支持。 spring.redis.timeout = #连接超时。 #activemq相关的配置(ActiveMQProperties) spring.activemq.broker-url = ActiveMQ代理的URL。默认情况下自动生成。 spring.activemq.close-timeout = 15s #在考虑收盘完成之前等待的时间。 spring.activemq.in-memory = true #默认代理URL是否应该在内存中。如果已指定显式代理,则忽略。 spring.activemq.non-blocking-redelivery = false #是否在从回滚事务重新传递消息之前停止消息传递。这意味着启用此消息顺序时不会保留消息顺序。 spring.activemq.password = #代理的登录密码。 spring.activemq.send-timeout = 0ms #等待消息发送响应的时间。将其设置为0以永远等待。 spring.activemq.user = #代理的登录用户。 spring.activemq.packages.trust-all = #是否信任所有包。 spring.activemq.packages.trusted = #逗号分隔的要信任的特定包列表(不信任所有包时)。 spring.activemq.pool.block-if-full = true #是否阻止请求连接并且池已满。将其设置为false以改为抛出“JMSException”。 spring.activemq.pool.block-if-full-timeout = -1ms#如果池仍然满,则在抛出异常之前阻塞。 spring.activemq.pool.create-connection-on-startup = true #是否在启动时创建连接。可用于在启动时预热池。 spring.activemq.pool.enabled = false #是否应创建PooledConnectionFactory,而不是常规ConnectionFactory。 spring.activemq.pool.expiry-timeout = 0ms #连接到期超时。 spring.activemq.pool.idle-timeout = 30s #连接空闲超时。 spring.activemq.pool.max-connections = 1 #池化连接的最大数量。 spring.activemq.pool.maximum-active-session-per-connection = 500#每个连接的最大活动会话数。 spring.activemq.pool.reconnect-on-exception = true #发生“JMSException”时重置连接。 spring.activemq.pool.time-between-expiration-check = -1ms #在空闲连接驱逐线程的运行之间休眠的时间。当为负时,没有空闲连接驱逐线程运行。 spring.activemq.pool.use-anonymous-producer = true #是否只使用一个匿名“MessageProducer”实例。将其设置为false以在每次需要时创建一个“MessageProducer”。 #spring.batch(BatchProperties) spring.batch.initialize-schema = embedded #数据库模式初始化模式。 spring.batch.job.enabled = true #在启动时执行上下文中的所有Spring Batch作业。 spring.batch.job.names = #逗号分隔的要在启动时执行的作业名称列表(例如,`job1,job2`)。默认情况下,将执行上下文中找到的所有作业。 spring.batch.schema = classpath中:组织/ springframework的/批号/核心/ schema- @ @ 平台@ @ .SQL #的路径SQL文件,以用于初始化数据库架构。 spring.batch.table-prefix =#所有批次元数据表的表前缀。 #JMS (JmsProperties) spring.jms.jndi-name = #连接工厂JNDI名称。设置时,优先于其他连接工厂自动配置。 spring.jms.listener.acknowledge-mode = #容器的确认模式。默认情况下,侦听器使用自动确认进行事务处理。 spring.jms.listener.auto-startup = true #启动时自动启动容器。 spring.jms.listener.concurrency = #最小并发使用者数。 spring.jms.listener.max-concurrency = #最大并发使用者数。 spring.jms.pub-sub-domain = false#默认目标类型是否为topic。 spring.jms.template.default-destination = #用于没有目标参数的发送和接收操作的默认目标。 spring.jms.template.delivery-delay = #用于发送呼叫的传递延迟。 spring.jms.template.delivery-mode = #Delivery模式。设置时启用QoS(服务质量)。 spring.jms.template.priority = #发送时消息的优先级。设置时启用QoS(服务质量)。 spring.jms.template.qos-enabled = #发送消息时是否启用显式QoS(服务质量)。 spring.jms.template.receive-timeout =#超时用于接听电话。 spring.jms.template.time-to-live = #发送时消息的生存时间。设置时启用QoS(服务质量)。 #APACHE KAFKA(KafkaProperties) spring.kafka.admin.client-id = #ID 在发出请求时传递给服务器。用于服务器端日志记录。 spring.kafka.admin.fail-fast = false #如果代理在启动时不可用,是否快速失败。 spring.kafka.admin.properties。* = #用于配置客户端的其他特定于管理员的属性。 spring.kafka.admin.ssl.key-password = #密钥库文件中私钥的密码。 spring.kafka.admin.ssl.keystore-location = #密钥库文件的位置。 spring.kafka.admin.ssl.keystore-password =#存储密钥库文件的密码。 spring.kafka.admin.ssl.keystore-type = #密钥库的类型。 spring.kafka.admin.ssl.protocol = #要使用的SSL协议。 spring.kafka.admin.ssl.truststore-location = #信任库文件的位置。 spring.kafka.admin.ssl.truststore-password = #存储信任存储文件的密码。 spring.kafka.admin.ssl.truststore-type = #信任库的类型。 spring.kafka.bootstrap-servers = #逗号分隔的主机:端口对列表,用于建立与Kafka集群的初始连接。 spring.kafka.client-id =在发出请求时传递给服务器的#ID。用于服务器端日志记录。 spring.kafka.consumer.auto-commit-interval = #如果'enable.auto.commit'设置为true,则消费者偏移自动提交给Kafka的频率。 spring.kafka.consumer.auto-offset-reset = #当Kafka中没有初始偏移量或服务器上不再存在当前偏移量时该怎么办。 spring.kafka.consumer.bootstrap-servers = #逗号分隔的主机:端口对列表,用于建立与Kafka集群的初始连接。 spring.kafka.consumer.client-id = #ID 在发出请求时传递给服务器。用于服务器端日志记录。 spring.kafka.consumer.enable-auto-commit = #是否在后台定期提交消费者的偏移量。 spring.kafka.consumer.fetch-max-wait = #如果没有足够的数据立即满足“fetch.min.bytes”给出的要求,服务器在回答获取请求之前会阻塞的最长时间。 spring.kafka.consumer.fetch-min-size = #服务器应为获取请求返回的最小数据量(以字节为单位)。 spring.kafka.consumer.group-id = #唯一字符串,用于标识此使用者所属的使用者组。 spring.kafka.consumer.heartbeat-interval =#心跳与消费者协调员之间的预计时间。 spring.kafka.consumer.key-deserializer = #Deserializer 类的键。 spring.kafka.consumer.max-poll-records = #一次调用poll()时返回的最大记录数。 spring.kafka.consumer.properties。* = #用于配置客户端的其他特定于使用者的属性。 spring.kafka.consumer.ssl.key-password = #密钥库文件中私钥的密码。 spring.kafka.consumer.ssl.keystore-location = #密钥库文件的位置。 spring.kafka.consumer.ssl.keystore-password = #存储密钥库文件的密码。 spring.kafka.consumer.ssl.keystore-type = #密钥库的类型。 spring.kafka.consumer.ssl.protocol = #要使用的SSL协议。 spring.kafka.consumer.ssl.truststore-location = #信任库文件的位置。 spring.kafka.consumer.ssl.truststore-password = #存储信任库文件的密码。 spring.kafka.consumer.ssl.truststore-type = #信任库的类型。 spring.kafka.consumer.value-deserializer = #Deserializer 类的值。 spring.kafka.jaas.control-flag = required #登录配置的控制标志。 spring.kafka.jaas.enabled = false#是否启用JAAS配置。 spring.kafka.jaas.login-module = com.sun.security.auth.module.Krb5LoginModule #登录模块。 spring.kafka.jaas.options = #其他JAAS选项。 spring.kafka.listener.ack-count = #当ackMode为“COUNT”或“COUNT_TIME”时,偏移提交之间的记录数。 spring.kafka.listener.ack-mode = #Listener AckMode。请参阅spring-kafka文档。 spring.kafka.listener.ack-time = #当ackMode为“TIME”或“COUNT_TIME”时,偏移提交之间的时间。 spring.kafka.listener.client-id = #侦听器的使用者client.id属性的前缀。 spring.kafka.listener.concurrency = #在侦听器容器中运行的线程数。 spring.kafka.listener.idle-event-interval = #发布空闲消费者事件(未收到数据)之间的时间。 spring.kafka.listener.log-container-config = #是否在初始化期间记录容器配置(INFO级别)。 spring.kafka.listener.monitor-interval = #检查无响应的消费者之间的时间。如果未指定持续时间后缀,则将使用秒。 spring.kafka.listener.no-poll-threshold = #Multiplier应用于“pollTimeout”以确定消费者是否无响应。 spring.kafka.listener.poll-timeout =#轮询消费者时使用超时。 spring.kafka.listener.type = single #Listener类型。 spring.kafka.producer.acks = #生产者要求领导者在考虑完成请求之前收到的确认数。 spring.kafka.producer.batch-size = #默认批量大小(以字节为单位)。 spring.kafka.producer.bootstrap-servers = #逗号分隔的主机:端口对列表,用于建立与Kafka集群的初始连接。 spring.kafka.producer.buffer-memory = #生产者可用于缓冲等待发送到服务器的记录的内存总字节数。 spring.kafka.producer.client-id =在发出请求时传递给服务器的#ID。用于服务器端日志记录。 spring.kafka.producer.compression-type = #生产者生成的所有数据的压缩类型。 spring.kafka.producer.key-serializer = 键的序列化器类。 spring.kafka.producer.properties。* = #用于配置客户端的其他特定于生产者的属性。 spring.kafka.producer.retries = #当大于零时,启用重试失败的发送。 spring.kafka.producer.ssl.key-password = #密钥库文件中私钥的密码。 spring.kafka.producer.ssl.keystore-location = #密钥库文件的位置。 spring.kafka.producer.ssl.keystore-password = #存储密钥库文件的密码。 spring.kafka.producer.ssl.keystore-type = #密钥库的类型。 spring.kafka.producer.ssl.protocol = #要使用的SSL协议。 spring.kafka.producer.ssl.truststore-location = #信任库文件的位置。 spring.kafka.producer.ssl.truststore-password = #存储信任存储文件的密码。 spring.kafka.producer.ssl.truststore-type = #信任库的类型。 spring.kafka.producer.transaction-id-prefix = #非空时,为生产者启用事务支持。 spring.kafka.producer.value-serializer = #Serializer 类的值。 spring.kafka.properties。* = #用于配置客户端的生产者和使用者 共有的附加属性。spring.kafka.ssl.key-password = #密钥库文件中私钥的密码。 spring.kafka.ssl.keystore-location = #密钥库文件的位置。 spring.kafka.ssl.keystore-password = #存储密钥库文件的密码。 spring.kafka.ssl.keystore-type = #密钥库的类型。 spring.kafka.ssl.protocol = #要使用的SSL协议。 spring.kafka.ssl.truststore-location =#信任库文件的位置。 spring.kafka.ssl.truststore-password = #存储信任存储文件的密码。 spring.kafka.ssl.truststore-type = #信任库的类型。 spring.kafka.template.default-topic = #发送消息的默认主题 #RABBIT(RabbitProperties) spring.rabbitmq.addresses = #逗号分隔的客户端应连接的地址列表。 spring.rabbitmq.cache.channel.checkout-timeout = #达到缓存大小后等待获取通道的持续时间。 spring.rabbitmq.cache.channel.size = #要在缓存中保留的通道数。 spring.rabbitmq.cache.connection.mode = channel #连接工厂缓存模式。 spring.rabbitmq.cache.connection.size = #缓存的连接数。 spring.rabbitmq.connection-timeout = #连接超时。将其设置为零以永远等待。 spring.rabbitmq.dynamic = true #是否创建AmqpAdmin bean。 spring.rabbitmq.host = localhost #RabbitMQ主机。 spring.rabbitmq.listener.direct.acknowledge-mode = #容器的确认模式。 spring.rabbitmq.listener.direct.auto-startup = true #是否在启动时自动启动容器。 spring.rabbitmq.listener.direct.consumers-per-queue = #每个队列的消费者数量。 spring.rabbitmq.listener.direct.default-requeue-rejected = #默认情况下,拒绝的交付是否重新排队。 spring.rabbitmq.listener.direct.idle-event-interval =#应该发布空闲容器事件的频率。 spring.rabbitmq.listener.direct.prefetch = #单个请求中要处理的消息数。它应该大于或等于事务大小(如果使用)。 spring.rabbitmq.listener.direct.retry.enabled = false #是否启用发布重试。 spring.rabbitmq.listener.direct.retry.initial-interval = 1000ms #第一次和第二次尝试传递消息之间的持续时间。 spring.rabbitmq.listener.direct.retry.max-attempts = 3 #传递邮件的最大尝试次数。 spring.rabbitmq.listener.direct.retry.max -interval = 10000ms #尝试之间的最长持续时间。 spring.rabbitmq.listener.direct.retry.multiplier = 1 #乘数应用于先前的重试间隔。 spring.rabbitmq.listener.direct.retry.stateless = true #重试是无状态还是有状态。 spring.rabbitmq.listener.simple.acknowledge-mode = #容器的确认模式。 spring.rabbitmq.listener.simple.auto-startup = true #是否在启动时自动启动容器。 spring.rabbitmq.listener.simple.concurrency = #侦听器调用者线程的最小数量。 spring.rabbitmq.listener.simple.default-requeue-rejected = #默认情况下,拒绝的交付是否重新排队。 spring.rabbitmq.listener.simple.idle-event-interval = #应该发布空闲容器事件的频率。 spring.rabbitmq.listener.simple.max-concurrency = #侦听器调用者线程的最大数量。 spring.rabbitmq.listener.simple.prefetch = #单个请求中要处理的消息数。它应该大于或等于事务大小(如果使用)。 spring.rabbitmq.listener.simple.retry.enabled = false #是否启用发布重试。 spring.rabbitmq.listener.simple.retry.initial-interval = 1000ms #第一次和第二次尝试传递消息之间的持续时间。 spring.rabbitmq.listener.simple.retry.max-尝试= 3 #传递邮件的最大尝试次数。 spring.rabbitmq.listener.simple.retry.max -interval = 10000ms #尝试之间的最长持续时间。 spring.rabbitmq.listener.simple.retry.multiplier = 1 #乘数应用于先前的重试间隔。 spring.rabbitmq.listener.simple.retry.stateless = true #重试是无状态还是有状态。 spring.rabbitmq.listener.simple.transaction-size = #要在事务中处理的消息数。也就是说,ack之间的消息数量。为获得最佳结果,它应小于或等于预取计数。 spring.rabbitmq.listener.type = simple #Listener容器类型。 spring.rabbitmq.password = guest #登录以对代理进行身份验证。 spring.rabbitmq.port = 5672 #RabbitMQ端口。 spring.rabbitmq.publisher-confirms = false #是否启用发布者确认。 spring.rabbitmq.publisher-returns = false #是否启用发布者返回。 spring.rabbitmq.requested-heartbeat = #请求心跳超时; 零没有。如果未指定持续时间后缀,则将使用秒。 spring.rabbitmq.ssl.enabled = false #是否启用SSL支持。 spring.rabbitmq.ssl.key-store = #保存SSL证书的密钥库的路径。 spring.rabbitmq.ssl.key-store-password = #用于访问密钥库的密码。 spring.rabbitmq.ssl.key-store-type = PKCS12 #密钥库类型。 spring.rabbitmq.ssl.trust-store = #持有SSL证书的信任存储。 spring.rabbitmq.ssl.trust-store-password = #用于访问信任库的密码。 spring.rabbitmq.ssl.trust-store-type = JKS #Trust store type。 spring.rabbitmq.ssl.algorithm = #SSL 算法使用。默认情况下,由Rabbit客户端库配置。 spring.rabbitmq.template.exchange = #用于发送操作的默认交换的名称。 spring.rabbitmq.template.mandatory = #是否启用强制消息。 spring.rabbitmq.template.receive-timeout = #receive()`操作的超时。 spring.rabbitmq.template.reply-timeout = #outoutout用于`sendAndReceive()`操作。 spring.rabbitmq.template.retry.enabled = false #是否启用发布重试。 spring.rabbitmq.template.retry.initial-interval = 1000ms #第一次和第二次尝试传递消息之间的持续时间。 spring.rabbitmq.template.retry.max-attempts = 3 #传递邮件的最大尝试次数。 spring.rabbitmq.template.retry.max -interval = 10000ms#尝试之间的最长持续时间 spring.rabbitmq.template.retry.multiplier = 1 #乘数应用于先前的重试间隔。 spring.rabbitmq.template.routing-key = #用于发送操作的默认路由键的值。 spring.rabbitmq.username = guest #登录用户以对代理进行身份验证。 spring.rabbitmq.virtual-host = #连接到代理时使用的虚拟主机。
2:自定义配置文件
为了不破坏核心文件的原生态,但又需要有自定义的配置信息存在,一般情况下会选择自定义配置文件来放这些自定义信息。
我们以一个简单的string.properties文件举例:在resources/config目录下创建配置文件string.properties,然后在SpringBoot启动类上添加@PropertySource并指定我们自定义文件的位置,如下:
@SpringBootApplication @PropertySource(value = { "classpath:config/string.properties" }, ignoreResourceNotFound = true, encoding = "utf-8") public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } } ignoreResourceNotFound=true表示找不到该文件,不报错。 .properties文件默认使用ISO-8859-1,所有我们这里设置的是utf-8
在controller通过@Value(“${属性名}”)注解来加载我们自定义配置文件中的属性值
使用随机数
Spring Boot的属性配置文件中可以通过${random}来产生int值、long值或者string字符串,来支持属性的随机值。他只在加载时,初始化一次,刷新浏览器不停地访问,值是不会发生变化的
#测试随机数 # 随机字符串 com.test.random.value=${random.value} # 随机int com.test.random.number=${random.int} # 随机long com.test.random.bignumber=${random.long} # 10以内的随机数 com.test.random.test10=${random.int(10)} # 10-20的随机数 com.test.random.test10-20=${random.int[10,20]}
多环境开发
在我们的需求中,可能存在发短信的业务需求,如果我们在开发工程中一直进行短信的测试,无疑是一种浪费,我们只在实际的生产环境中才发送短信,在开发工程中只生产随机数就可以。那么我们就可以借助SpringBoot的注解@Profile帮助我们实现这样的需求。
用两个实现类举例子:
生产环境:
@Service
@Profile("prod")
public class UserServiceImpl implements UserService {
@Override
public String getUserName() {
// TODO Auto-generated method stub
return "生产环境";
}
}
开发环境:
@Service @Profile("dev") public class UserServiceImpl1 implements UserService { @Override public String getUserName() { // TODO Auto-generated method stub return "开发环境"; } }
然后我们在application.properties进行如下配置,就是生产环境
spring.profiles.active=prod 1
当然我们也可以在不同的开发环境中使用不同的的配置文件,这样我们就避免了修改配置文件信息。比如说上传文件的时候,在本地上传地址和服务器地址的切换,我们需要建以下几个文件,分别表示不同的开发环境:
application.properties
application-dev.properties: 开发环境
application-test.properties:测试环境
application-prod.properties 生产环境
在不同的配置文件中进行不同开发环境的配置即可,我们需要用到哪个开发环境在application.properties中配置spring.profiles.active即可 ,例如我们使用的是开发环境,那么我们需在application.properties中配置:
spring.profiles.active=dev
本文暂时没有评论,来添加一个吧(●'◡'●)