JdbcZuulRouteService.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.yihu.ehr.zuul.config;
  2. import org.springframework.cloud.netflix.zuul.filters.ZuulProperties;
  3. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  4. import org.springframework.jdbc.core.JdbcTemplate;
  5. import java.util.List;
  6. /**
  7. * Created by progr1mmer on 2018/8/24.
  8. */
  9. public class JdbcZuulRouteService {
  10. private final JdbcTemplate jdbcTemplate;
  11. public JdbcZuulRouteService(JdbcTemplate jdbcTemplate){
  12. this.jdbcTemplate = jdbcTemplate;
  13. }
  14. public void addZuulRoute(ZuulProperties.ZuulRoute zuulRoute) {
  15. jdbcTemplate.update("insert into zuul_route (id, path, service_id, url, "
  16. + "retryable, enabled) values (?, ?, ?, ?, ?, ?)", getFieldsForUpdate(zuulRoute));
  17. }
  18. public int removeZuulRoute(String id) {
  19. return jdbcTemplate.update("delete from zuul_route where id = ?", id);
  20. }
  21. public int updateZuulRouteEnable(String id, int enabled) {
  22. return jdbcTemplate.update("update zuul_route set enabled = ? where id = ?", new Object[]{enabled, id});
  23. }
  24. public List<ZuulProperties.ZuulRoute> loadZuulRoutes() {
  25. List<ZuulProperties.ZuulRoute> zuulRoutes = jdbcTemplate.query("select id, path, service_id, url, "
  26. + "retryable, enabled from zuul_route", new BeanPropertyRowMapper<>(ZuulProperties.ZuulRoute.class));
  27. return zuulRoutes;
  28. }
  29. public List<ZuulProperties.ZuulRoute> loadEnabledZuulRoutes() {
  30. List<ZuulProperties.ZuulRoute> zuulRoutes = jdbcTemplate.query("select id, path, service_id, url, "
  31. + "retryable, enabled from zuul_route where enabled = 1", new BeanPropertyRowMapper<>(ZuulProperties.ZuulRoute.class));
  32. return zuulRoutes;
  33. }
  34. private Object [] getFieldsForUpdate(ZuulProperties.ZuulRoute zuulRoute) {
  35. return new Object[]{
  36. zuulRoute.getId(),
  37. zuulRoute.getPath(),
  38. zuulRoute.getServiceId(),
  39. zuulRoute.getUrl(),
  40. zuulRoute.getRetryable(),
  41. 1
  42. };
  43. }
  44. }