<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <!-- 自定义starter --> <dependencies> <!-- Compile dependencies --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> </dependency> <!-- 能够让我们编写的配置文件在 其他人引用的时候有一定提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency>
定义读取配置文件的类
@ConfigurationProperties(prefix = "mayikt")//单独用这个注解的会报错这个注解要配合@Configuration 或@EnableConfigurationProperties public class TokenProperties { private String tokenRedisHost; private String tokenRedisPwd; // mayikt.tokenRedisHost // mayikt.tokenRedisPwd /* tokenRedisHost=token-redis-host mayikt.token-redis-host 定义配置文件的key的时候没有大写 都是为小写 */ public void setTokenRedisHost(String tokenRedisHost) { this.tokenRedisHost = tokenRedisHost; } public void setTokenRedisPwd(String tokenRedisPwd) { this.tokenRedisPwd = tokenRedisPwd; } public String getTokenRedisHost() { return tokenRedisHost; } public String getTokenRedisPwd() { return tokenRedisPwd; } }
将定义的方法和配置文件导入spring
@Configuration @EnableConfigurationProperties(TokenProperties.class)//这个可以把配置文件导入 public class TokenAutoConfiguration { @Bean public TokenService tokenService() { return new TokenService(); } }
定义方法
public class TokenService { @Autowired private TokenProperties tokenProperties; public String getToken() { System.out.println("模拟生成token"); return tokenProperties.getTokenRedisHost() + "," + tokenProperties.getTokenRedisPwd(); } }
作为第三方依赖引入的时候可以让别的项目读取到这个配置类
在resourcesMETA-INF目录下面创建spring.factories 文件 文件的内容为 org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.mayikt.config.TokenAutoConfiguration//这个就是刚才那个配置文件类,这样别的项目就可以读取到这个配置文件然后注入到spring里面了
然后将此项目打成jar包在别的项目引入maven依赖就可以了 ,配置文件哪个项目 引入的就在哪个项目配置就可以了