В проекте, над которым я сейчас работаю, нам нужно иметь несколько профилей, то есть «по умолчанию» и «облако».
как DefaultContext и CloudContext содержат те же самые определения боба Мы используем ППР (Pivotal Cloud Foundry)Spring default default default
мы создали интерфейс
public interface Config {
public DataSource getDataSource();
public SomeService getService();
}
Затем реализовать каждый профиль с этим интерфейсом
@Primary
@Configuration
@Profile("default")
public class DevConfig implements Config
{
public DataSource getDataSource() {
// create and return production datasource
}
public SomeService getService() {
// Create and return production service
}
}
И затем сделайте то же самое для облака.
@Configuratio
@Profile("cloud")
public class CloudConfig extends AbstractCloudConfig implements Config
{
public DataSource getDataSource() {
// create and return dummy datasource
}
public SomeService getService() {
// Create and return dummy service
}
}
И мы являемся Autowiring в сервисе, в файле процессора.
@Service("processor")
public class Processor {
@Autowired Config dsConfig;
public object get(int Number)
{
return dao.get(Number,dsConfig.getDataSource());
}
}
Если мы разворачиваем в PCF, то работаем отлично, поскольку профиль облако. Если мы работаем локально, он должен получить профиль по умолчанию, но dsConfig имеет значение NULL. Не могли бы вы помочь в этом.
Вы не должны вводить 'Config'. Поместите '@ Bean' на каждый метод. Затем вы должны вводить отдельные бобы. – spencergibb