Я довольно новичок в Spring Framework, и у меня возникли проблемы с настройкой проекта, над которым я сейчас работаю. Мне нужно иметь возможность подключаться к двум различным базам данных: MongoDB, а другой - MSSQL. Я использую JPA для подключения к MSSQL.Весна, использующая реализацию Монго по JPA
Проблема, с которой я сталкиваюсь, заключается в том, что она пытается совершать вызовы в базу данных Mongo, когда я хочу, чтобы она вызывала вызовы MSSQL, и я не уверен, как сказать ей, что читать. Я видел сообщения, которые советуют использовать аннотацию @Qualifier
, чтобы направить ее на правильную реализацию, но я не думаю, что это будет работать для моего дела.
@RestController
@RequestMapping("/software")
public class SoftwareEndpoint {
@Autowired
SoftwareRepository repo;
/**********************************************************************************
********************************MSSQL calls****************************************
***********************************************************************************/
@RequestMapping(value="/all",method=RequestMethod.GET,produces=MediaType.APPLICATION_JSON)
String getAllSoftware(){
System.out.println("Here1");
List<Software> allSoftware = (List<Software>) repo.findAll();
System.out.println("Here2");
//rest of method and class
Наверху показан фрагмент моего класса контроллера, который имеет экземпляр моего SoftwareRepository. Я также печатаю в выходной поток до и после вызова db.
Выездное поток показывает только «Here1», продолжает печатать эту строку:
2016-10-04 07:35:39.810 INFO 4236 --- [nio-8080-exec-2] org.mongodb.driver.cluster : No server chosen by ReadPreferenceServerSelector{readPreference=primary} from cluster description ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, all=[ServerDescription{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused: connect}}]}. Waiting for 30000 ms before timing out
, а затем бросает исключение на тайм-аут.
У меня нет экземпляра mongo, работающего локально, однако там будет развернуто приложение, но я не считаю, что это проблема, потому что при попадании в эту конечную точку он не должен создавать звоните в базу данных Mongo, он должен попытаться связаться с MSSQL.
TLDR: Как указать, какую реализацию базы данных использовать Spring для конкретного репозитория или вызова базы данных?
Спасибо! Знаете ли вы, что есть хороший ресурс в Интернете для «перевода» Java Config в XML. Я искал довольно давно и ничего не придумал. XML просто кажется более чистым, и мы уже используем его для реализации Mongo. – CraigR8806
Если вы имеете в виду получение значения из конфигурации и обновления в xml при загрузке программы, то редактирование в приведенном выше поможет. – HARDI