您好,登錄后才能下訂單哦!
小編這次要給大家分享的是Spring @Profile注解如何實(shí)現(xiàn)多環(huán)境配置,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
一 前言
springboot中使用多環(huán)境開發(fā)如此簡單,你想知道spring中是如何實(shí)現(xiàn)的么?一起來學(xué)習(xí)吧??!你為什么不好好學(xué)習(xí)基礎(chǔ),面試一直被diss呢?說到底還不是你認(rèn)為都會(huì)了,其實(shí)你都不會(huì),一問三不知??!
二 @profile實(shí)現(xiàn)多環(huán)境配置
2.1 @profile配置
使用@profile注解的目的是未了多環(huán)境開發(fā),比如開發(fā)環(huán)境使用dev, 生產(chǎn)環(huán)境使用prod,就可以使用@Profile注解實(shí)現(xiàn)不同的開發(fā)環(huán)境使用不同的數(shù)據(jù)源;
@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)//創(chuàng)建spring應(yīng)用上下文 @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:知識(shí)追尋者, 20:知識(shí)追尋者, 21:知識(shí)追尋者, 22:知識(shí)追尋者, 23:知識(shí)追尋者] System.out.println(query); } }
看完這篇關(guān)于Spring @Profile注解如何實(shí)現(xiàn)多環(huán)境配置的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。