在配置文件中设置一个属性名,对应开关的状态 scheduling.enable=false
@Component @Lazy(false) @ConditionalProperty(prefix = "scheduling", name = "enable", havingValue = "true")
@ConditionalOnProperty来控制Configuration是否生效,从application.properties中读取某个属性值,如果该值为空,默认值为true
import com.hisome.exampt.timedTask.StdHySendTask; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * mango * */ public class PropertyUtil { private static final Logger logger = LoggerFactory.getLogger(PropertyUtil.class); private static Properties props; static{ loadProps(); } synchronized static private void loadProps(){ logger.info("开始加载properties文件内容......."); props = new Properties(); InputStream in = null; try { //<!--第一种,通过类加载器进行获取properties文件流--> in = PropertyUtil.class.getClassLoader().getResourceAsStream("application.properties"); // <!--第二种,通过类进行获取properties文件流--> //in = PropertyUtil.class.getResourceAsStream("/jdbc.properties"); props.load(in); } catch (FileNotFoundException e) { logger.error("application.properties文件未找到"); } catch (IOException e) { logger.error("出现IOException"); } finally { try { if(null != in) { in.close(); } } catch (IOException e) { logger.error("application.properties文件流关闭出现异常"); } } logger.info("加载properties文件内容完成..........."); logger.info("properties文件内容:" + props); StdHySendTask s= new StdHySendTask(); } public static String getProperty(String key){ if(null == props) { loadProps(); } return props.getProperty(key); } public static String getProperty(String key, String defaultValue) { if(null == props) { loadProps(); } return props.getProperty(key, defaultValue); } public static void update(String key, String value) { props.setProperty(key, value); FileOutputStream oFile = null; try { oFile = new FileOutputStream("application.properties"); //将Properties中的属性列表(键和元素对)写入输出流 props.store(oFile, ""); } catch (IOException e) { e.printStackTrace(); } finally { try { oFile.close(); } catch (IOException e) { e.printStackTrace(); } } } }
获取配置内容,properties在启动时加载一次