您好,登錄后才能下訂單哦!
小編這次要給大家分享的是Spring @Profile注解如何實現多環境配置,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
一 前言
springboot中使用多環境開發如此簡單,你想知道spring中是如何實現的么?一起來學習吧!!你為什么不好好學習基礎,面試一直被diss呢?說到底還不是你認為都會了,其實你都不會,一問三不知!!
二 @profile實現多環境配置
2.1 @profile配置
使用@profile注解的目的是未了多環境開發,比如開發環境使用dev, 生產環境使用prod,就可以使用@Profile注解實現不同的開發環境使用不同的數據源;
@profile注解 使用說明:
spring3.2之前 @Profile注解用在類上
spring3.2 之后 @Profile注解用在 方法上
/** * @Author lsc * <p>spring3.2之前 @Profile注解用在類上 * spring3.2 之后 @Profile注解用在 方法上 * </p> */ @Configuration public class DataSourceConfig { @Bean @Profile("dev") public DataSource devDataSource() { System.out.println(" dev DataSource !!"); BasicDataSource basicDataSource = new BasicDataSource(); basicDataSource.setDriverClassName("com.mysql.jdbc.Driver"); basicDataSource.setUrl("jdbc:mysql://localhost:3308/zszxz"); basicDataSource.setUsername("root"); basicDataSource.setPassword("1234"); return basicDataSource; } @Bean @Profile("prod") public DataSource prodDataSource() { System.out.println(" prod DataSource !!"); BasicDataSource basicDataSource = new BasicDataSource(); basicDataSource.setDriverClassName("com.mysql.jdbc.Driver"); basicDataSource.setUrl("jdbc:mysql://localhost:3306/zszxz"); basicDataSource.setUsername("root"); basicDataSource.setPassword("1234"); return basicDataSource; } }
如果你是在xml中配置,示例如下
<beans profile="dev"> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://localhost:3306/zszxzb" p:username="root" p:password="1234"/> </beans> <beans profile="prod"> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://localhost:3306/zszxzb" p:username="root" p:password="1234"/> </beans>
2.2 激活方式
激活方式一
激活方式二
在web.xml 中配置
<context-param> <param-name>spring.profiles.active</param-name> <param-value>dev</param-value> </context-param> <servlet> <servlet-name>zszxzServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <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>zszxzServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
激活方式三
在類上使用@ActiveProfiles注解
測試如下
@RunWith(SpringJUnit4ClassRunner.class)//創建spring應用上下文 @ContextConfiguration(classes= DataSourceConfig.class)//加載配置類 @ActiveProfiles("dev") public class ProfileTest { @Autowired private DataSource dataSource; @Test public void sheetTest(){ JdbcTemplate jdbc = new JdbcTemplate(dataSource); List<String> query = jdbc.query("select * from customer", new RowMapper<String>() { @Override public String mapRow(ResultSet rs, int rowNum) throws SQLException { return rs.getLong("id") + ":" + rs.getString("customer_name"); } }); // [19:知識追尋者, 20:知識追尋者, 21:知識追尋者, 22:知識追尋者, 23:知識追尋者] System.out.println(query); } }
看完這篇關于Spring @Profile注解如何實現多環境配置的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。