Configured in multiple environments should be how, such as database connection character, different multiple environments, spring program, probably summed up as follows.
Example, database configuration.
Gets the definition of a database link interface
public interface DataConnection { String getConnection(); }
There are two implementations dev and prod
@Component @Profile("dev") public class DevDataConnection implements DataConnection{ @Override public String getConnection() { return "dev"; } }
@Component @Profile("prod") public class ProdDataConnection implements DataConnection{ @Override public String getConnection() { return "prod"; } }
test:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = DemoConfiguration.class) @ActiveProfiles("dev") public class DemoDaoTest { @Autowired private DemoDao demoDao; @Test public void testConnection() { String connection= demoDao.testConnection(); System.out.println(connection); } }
result:
Introduced in the present embodiment is arranged dev