Spring的profile屬性


使用示例

//注解方式
public class DataSourceConfig {
    @Bean
    @Profile("prod")    
    public DataSource dataSource(){
        return null;
    }
}
//xml方式
<beans profile="prod">
    .............................
</beans>

屬性含義

通過profile標記不同的環境,可以通過設置spring.profiles.active和spring.profiles.default激活指定profile環境。如果設置了active,default便失去了作用。如果兩個都沒有設置,那么帶有profiles的bean都不會生成。

有多種方式來設置這兩個屬性:

  • 作為DispatcherServlet的初始化參數;
  • 作為web應用的上下文參數;
  • 作為JNDI條目;
  • 作為環境變量; System.set("spring.profiles.active","prod")
  • 作為JVM的系統屬性; -Dspring.profiles.active="prod"
  • 在集成測試類上,使用@ActiveProfiles注解配置。

以前兩種方式舉例,它們都可以在web.xml中設置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>    
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
      <param-name>applicationContext</param-name>
      <param-value>/applicationContext.xml</param-value>
  </context-param>
  <!-- 在上下文中設置profile的默認值 -->
  <context-param>
      <param-name>spring.profiles.default</param-name>
      <param-value>dev</param-value>
  </context-param>
  
  <listener>
      <listener-class>
          org.springframework.web.context.ContextLoaderListener
      </listener-class>
  </listener>
  
  <servlet>
      <servlet-name>appServlet</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <!-- 在servlet中設置profile的默認值 -->
      <init-param>
      <param-name>spring.profiles.default</param-name>
      <param-value>dev</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>appServlet</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM