百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Springboot常见的注解

toyiye 2024-06-21 19:09 12 浏览 0 评论

本片文章是自己整理的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

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码