springboot中静态变量值的注入及子项目间的profile的设置

在springboot项目中,经常会将controller层、service层等作为不同的子项目,我们常常将提供的服务层打包成jar包,在controller所在的web项目中调用,可以在pom文件中引用:

springboot中静态变量值的注入及子项目间的profile的设置springboot中静态变量值的注入及子项目间的profile的设置springboot中静态变量值的注入及子项目间的profile的设置springboot中静态变量值的注入及子项目间的profile的设置springboot中静态变量值的注入及子项目间的profile的设置springboot中静态变量值的注入及子项目间的profile的设置

前面简单说了一下项目之间的引用,接下来要说下如何实现多环境的配置信息作为静态变量在项目之间的注入,对于application.properties在多环境下的配置可以参照 此文http://www.jb51.net/article/108670.htm。本文主要介绍静态变量的注入。

springboot中静态变量值的注入及子项目间的profile的设置1、在application-dev配置文件中写入配置内容:springboot中静态变量值的注入及子项目间的profile的设置

springboot中静态变量值的注入及子项目间的profile的设置

2、在application.properties中指定profile

springboot中静态变量值的注入及子项目间的profile的设置springboot中静态变量值的注入及子项目间的profile的设置

3、静态变量定义的文件在common项目中

springboot中静态变量值的注入及子项目间的profile的设置

代码如下:

@Component
public class WxArg {
    public static String appID;
    public static String appsecret;
    public static String USER_AUTH_CODE;
    public static String SSO_IDENTIFY_URL;

    public String getAppID() {
        return appID;
    }
    @Value("${wxArg.appID}")
    public void setAppID(String appID) {
        WxArg.appID = appID;
    }

    public String getAppsecret() {
        return appsecret;
    }

    @Value("${wxArg.appsecret}")
    public void setAppsecret(String appsecret) {
        WxArg.appsecret = appsecret;
    }

    public String getUserAuthCode() {
        return USER_AUTH_CODE;
    }

    @Value("${wxArg.userAuthCode}")
    public void setUserAuthCode(String userAuthCode) {
        USER_AUTH_CODE = userAuthCode;
    }

    public String getSsoIdentifyUrl() {
        return SSO_IDENTIFY_URL;
    }

    @Value("${wxArg.ssoIdentifyUrl}")
    public void setSsoIdentifyUrl(String ssoIdentifyUrl) {
        SSO_IDENTIFY_URL = ssoIdentifyUrl;
    }
}
注意:

1>在set方法上使用@Value("${wxArg.ssoIdentifyUrl}")获取;

2>方法不要用静态方法;

3>在类方法上加上@Component;

4、测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class WxArgTest {
   private static org.slf4j.Logger logger = LoggerFactory.getLogger(WxArgTest.class);

   @Test
   public void AppID (){
      logger.info("WxArg.appID--------->" + WxArg.appID);
      logger.info("WxArg.appsecret--------->" + WxArg.appsecret);
      logger.info("WxArg.userAuthCode--------->" + WxArg.USER_AUTH_CODE);
      logger.info("WxArg.ssoIdentifyUrl--------->" + WxArg.SSO_IDENTIFY_URL);

   }
}