001/** 002 * Copyright (c) 2015-2022, Michael Yang 杨福海 (fuhai999@gmail.com). 003 * <p> 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * <p> 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * <p> 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package io.jboot.objects.counter; 017 018import io.jboot.Jboot; 019import io.jboot.core.spi.JbootSpiLoader; 020import io.jboot.objects.counter.impl.JbootLocalCounter; 021import io.jboot.objects.counter.impl.JbootRedisCounter; 022 023/** 024 * @author michael yang (fuhai999@gmail.com) 025 * @Date: 2020/2/28 026 */ 027public class JbootCounterManager { 028 029 private static JbootCounterManager instance = new JbootCounterManager(); 030 public static JbootCounterManager me() { 031 return instance; 032 } 033 034 035 private JbootCounterConfig config = Jboot.config(JbootCounterConfig.class); 036 037 public JbootCounter create(String name){ 038 switch (config.getType()){ 039 case JbootCounterConfig.TYPE_LOCAL: 040 return new JbootLocalCounter(name); 041 case JbootCounterConfig.TYPE_REDIS: 042 return new JbootRedisCounter(name); 043 default: 044 return JbootSpiLoader.load(JbootCounter.class,config.getType()); 045 } 046 047 048 } 049 050}