BrokerServerService.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.yihu.hos.services;
  2. import com.yihu.hos.models.BrokerServer;
  3. import org.apache.log4j.LogManager;
  4. import org.apache.log4j.Logger;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.data.domain.Sort;
  7. import org.springframework.data.mongodb.core.MongoOperations;
  8. import org.springframework.data.mongodb.core.query.Criteria;
  9. import org.springframework.data.mongodb.core.query.Query;
  10. import org.springframework.data.mongodb.core.query.Update;
  11. import org.springframework.stereotype.Service;
  12. /**
  13. * @created Airhead 2016/7/27.
  14. */
  15. @Service
  16. public class BrokerServerService {
  17. private static final Logger logger = LogManager.getLogger(BrokerServerService.class);
  18. @Autowired
  19. private MongoOperations mongoOperations;
  20. public void save(BrokerServer brokerServer) {
  21. Query query = new Query();
  22. query.addCriteria(Criteria.where("hostName").is(brokerServer.getHostName()));
  23. query.addCriteria(Criteria.where("hostAddress").is(brokerServer.getHostAddress()));
  24. Update update = new Update();
  25. update.set("hostName", brokerServer.getHostName());
  26. update.set("hostAddress", brokerServer.getHostAddress());
  27. update.set("port", brokerServer.getPort());
  28. update.set("updateTime", brokerServer.getUpdateTime());
  29. mongoOperations.upsert(query, update, BrokerServer.class);
  30. }
  31. /**
  32. * 暂不提供动态均衡算法,只是随机返回一个。
  33. *
  34. * @return
  35. */
  36. public BrokerServer get() {
  37. Query query = new Query();
  38. query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "updateTime")));
  39. return mongoOperations.findOne(query, BrokerServer.class);
  40. }
  41. public void delete(BrokerServer brokerServer) {
  42. mongoOperations.remove(brokerServer);
  43. }
  44. }