Я новичок в SpringBoot.Я создал простое приложение, которое должно использовать ложные данные в среде разработки и подключаться к MongoDb в тестовой среде.Среда разработки не имеет настройки mongodb.
Я пытался использовать для этого квалификаторы / профили Spring Boot.
У меня есть основной класс, который выглядит следующим образом:
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
У меня есть интерфейс DAO StudentDao.java
public interface StudentDao {
Student getStudentById(String id);
}
Затем я создал несколько реализаций для DAO, одну для поддельных данных и одну для данных из Mongo
FakeStudentDaoImpl.java
@Repository
@Qualifier("fakeData")
public class FakeStudentDaoImpl implements StudentDao {
private static Map<String, Student> students;
static {
students = new HashMap<String, Student>(){
{
put("1", new Student("Ram", "Computer Science"));
}
};
}
@Override
public Student getStudentById(String id){
return this.students.get(id);
}
}
MongoStudentDaoImpl.java
@Repository
@Qualifier("mongoData")
public class MongoStudentDaoImpl implements StudentDao {
@Autowired
private MongoStudentRepo repo;
@Override
public Student getStudentById(String id) {
return repo.findById(id).get();
}
}
MongoStudentRepo - это простой интерфейс, расширяющий MongoRepository:
public interface MongoStudentRepo extends MongoRepository<Student, String> {
}
И у моего POM-файла есть следующие зависимости:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
Конечно, у меня есть другие классы контроллеров.Это прекрасно работает в тестовой среде, где есть MongoDb, и он может подключиться к нему.Однако, когда я пытаюсь запустить его в моей локальной среде, он не запускается, потому что он не находит MongoDb при запуске.
Как отключить часть MongoDb в моей локальной среде (и просто использовать поддельные данные)?Я хочу, чтобы один и тот же код работал в обеих средах.
Заранее спасибо.