The application method of this attribute is field_name=@field_value@.
The two @ symbols are generated by springboot to replace the ${} attribute placeholder. The reason is that ${} will be processed by maven, so it should not be able to reference variables.
@@ method can refer to variables in springboot non-default configuration files (i.e. other configuration files);
springboot default configuration file is src/main/resources/application.properties
Configure spring directly in application.properties Just use the .profiles.active attribute to distinguish the environment.
${} and @@ are both ways springboot refers to attribute variables.
1) The use of ${}
The most commonly used one is to set the version number in the pom file The configuration usage, such as the following:
<properties> <swagger.version>2.8.0</swagger.version> </properties> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> </dependency>
There is also the assignment operation in the configuration file or .sh file, such as the following:
IMAGES_NAME=brain-health-openplatform CONTAINER_NAME=brain-health-openplatform APP_PORT=7701 APP_HOME=/home/admin/brain-health-openplatform #启动容器 docker run -d --name ${CONTAINER_NAME} -p ${APP_PORT}:${APP_PORT} -v ${APP_HOME}/logs:/logs ${CONTAINER_NAME}
2) The use of @@## The
#@@ method is often used to reference variables in springboot non-default configuration files (i.e. other configuration files). It is generated by springboot as an alternative attribute placeholder. The reason is that the {} attribute placeholder is generated. The reason is The attribute placeholder is generated because {} will be processed by maven, so it will not function as a reference variable when referencing a non-default configuration file. For example, the yml in our project plays an overall role, injecting different values through the configuration files of the four environments. I feel that the effect is the same as the original prod and test folders.3) @@Introducing ordinary value values
In fact, my first question was not how to inject, but to see that all injections in the project have ownership relationships. , such as belonging to server/spring or mybatis or logging, etc. So I want to configure a common link path, how should I do it? In fact, it is complicated. You only need to directly copy the key in the properties into the yml file, and it will automatically form a key-value pair.# properties文件中: customer.brain.training=XXX brain.training.report=XXX train.path.source=XXX
# yml文件中的注入 customer: brain: training: @customer.brain.training@ brain: training: report: @brain.training.report@ train: path: source: @train.path.source@
// 项目中的使用,直接就是@value的正常形式 @Value("${customer.brain.training}") private String CustomerBrainTrainingUrl;
The above is the detailed content of What is the way to reference attribute variables in the springboot configuration file?. For more information, please follow other related articles on the PHP Chinese website!