当前位置: 首页 > news >正文

icp备案网站要先建好吗网站推广服务商

icp备案网站要先建好吗,网站推广服务商,网站首页图片轮转代码 很好用,做网站有几种语言一、需求说明 本机启动含有XXL-job的工程,发现每次都会进行XXL-job的init的动作。这会导致本机每次启动都会把自己注册到XXL-job的服务端。但是我明明本地调试的功能不想要是编写定时任务,于是想了下,是否可以设计一个开关,让本机…

一、需求说明

本机启动含有XXL-job的工程,发现每次都会进行XXL-job的init的动作。这会导致本机每次启动都会把自己注册到XXL-job的服务端。但是我明明本地调试的功能不想要是编写定时任务,于是想了下,是否可以设计一个开关,让本机的服务不注册到XXL-job的服务端呢。我们可以新增一个Boolean 类型的字段enabled,用于动态控制注册动作。即在沙箱环境可以配置成是打开的,但是在本机可以配置成是关闭的。

二、实现思路

2.1 方式1、使用if语句

@Configuration
@Slf4j
public class XxlJobConfig {@Value("${xxl.job.admin.addresses}")private String adminAddresses;@Value("${xxl.job.accessToken}")private String accessToken;@Value("${xxl.job.executor.appname}")private String appname;@Value("${xxl.job.executor.address}")private String address;@Value("${xxl.job.executor.ip}")private String ip;@Value("${xxl.job.executor.port}")private int port;@Value("${xxl.job.executor.logpath}")private String logPath;@Value("${xxl.job.executor.logretentiondays}")private int logRetentionDays;/*** 开关,默认关闭*/@Value("${xxl.job.enabled}")private Boolean enabled;@Beanpublic XxlJobSpringExecutor xxlJobExecutor() {if (enabled) {log.info(">>>>>>>>>>> xxl-job config init.");XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(adminAddresses);xxlJobSpringExecutor.setAppname(appname);xxlJobSpringExecutor.setAddress(address);xxlJobSpringExecutor.setIp(ip);xxlJobSpringExecutor.setPort(port);xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(logPath);xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;}return null;}}
xxl:job:accessToken: ${XXL_JOB_ACCESSTOKEN:XXL_JOB_ACCESSTOKEN}admin:addresses: ${XXL_JOB_ADMIN_ADDRESS:XXL_JOB_ADMIN_ADDRESS}enabled: trueexecutor:address: ${XXL_JOB_EXECUTOR_ADDRESS:XXL_JOB_EXECUTOR_ADDRESS}appname: ${XXL_JOB_EXECUTOR_APPNAME:XXL_JOB_EXECUTOR_APPNAME}ip: ${XXL_JOB_EXECUTOR_IP:XXL_JOB_EXECUTOR_IP}logpath: ${XXL_JOB_EXECUTOR_LOGPATH:XXL_JOB_EXECUTOR_LOGPATH}logretentiondays: ${XXL_JOB_EXECUTOR_LOGRETENTIONDAYS:30}port: ${XXL_JOB_EXECUTOR_PORT:9999}

2.2 方式2、使用@ConditionalOnProperty注解

以下是核心的配置
@ConditionalOnProperty(prefix = “xxl.job”, name = “enabled”, havingValue = “true”)

以下是核心的配置类代码:

@Slf4j
@Configuration
@EnableConfigurationProperties(XxlJobProperties.class)
@AllArgsConstructor
@ConditionalOnProperty(prefix = "xxl.job", name = "enabled", havingValue = "true")
public class XxlJobConfig {private final XxlJobProperties xxlJobProperties;@Beanpublic XxlJobSpringExecutor xxlJobExecutor() {log.info(">>>>>>>>>>> xxl-job config init.");XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(xxlJobProperties.getAdminAddresses());xxlJobSpringExecutor.setAccessToken(xxlJobProperties.getAccessToken());XxlJobProperties.Executor executor = xxlJobProperties.getExecutor();xxlJobSpringExecutor.setAppname(executor.getAppname());xxlJobSpringExecutor.setAddress(executor.getAddress());xxlJobSpringExecutor.setIp(executor.getIp());xxlJobSpringExecutor.setPort(executor.getPort());xxlJobSpringExecutor.setLogPath(executor.getLogPath());xxlJobSpringExecutor.setLogRetentionDays(executor.getLogRetentionDays());return xxlJobSpringExecutor;}
}
@Data
@ConfigurationProperties(prefix = "xxl.job")
public class XxlJobProperties {private Boolean enabled;private String adminAddresses;private String accessToken;private Executor executor;@Data@NoArgsConstructorpublic static class Executor {private String appname;private String address;private String ip;private int port;private String logPath;private int logRetentionDays;}
}
xxl:job:access-token: ${XXL_JOB_ACCESS_TOKEN:XXL_JOB_ACCESS_TOKEN}admin-addresses: ${XXL_JOB_ADMIN_ADDRESSES:XXL_JOB_ADMIN_ADDRESSES}enabled: ${XXL_JOB_ENABLED:XXL_JOB_ENABLED}executor:address: ${XXL_JOB_EXECUTOR_ADDRESS:XXL_JOB_EXECUTOR_ADDRESS}appname: ${XXL_JOB_EXECUTOR_APPNAME:XXL_JOB_EXECUTOR_APPNAME}ip: ${XXL_JOB_EXECUTOR_IP:XXL_JOB_EXECUTOR_IP}logpath: ${XXL_JOB_EXECUTOR_LOGPATH:XXL_JOB_EXECUTOR_LOGPATH}logretentiondays: ${XXL_JOB_EXECUTOR_LOG_RETENTION_DAYS:30}port: ${XXL_JOB_EXECUTOR_PORT:9999}

三、@ConditionalOnProperty介绍

3.1 @ConditionalOnProperty作用

@ConditionalOnProperty 是 Spring Boot 框架中的一个注解,它用于根据应用程序配置的属性值条件性地加载或配置 Bean。在Springboot中,有时候需要控制配置类是否生效,可以使用@ConditionalOnProperty注解来控制@Configuration是否生效。 即通过@ConditionalOnProperty控制配置类是否生效,可以将配置与代码进行分离,实现了更好的控制配置。

3.2 @ConditionalOnProperty的实现

具体来说,@ConditionalOnProperty 允许您在运行时基于应用程序配置的属性值来控制 Bean 是否应该被创建或配置。该注解有一个name属性,指定应用程序配置文件中的属性名,和一个havingValue属性,指定该属性的值。如果应用程序配置文件中的属性名存在且其值与havingValue属性相同,那么与该注解标注的Bean将会被创建或配置,否则不会。

@ConditionalOnProperty实现是通过havingValue与配置文件中的值对比,返回为true则配置类生效,反之失效。
@ConditionalOnProperty(prefix = “xxl.job”, name = “enabled”, havingValue = “true”)

3.3 @ConditionalOnProperty举例

举个例子,下面的代码片段展示了如何在一个Spring Boot应用中使用 @ConditionalOnProperty 注解:

@Configuration
@ConditionalOnProperty(name = "myapp.feature.enabled",havingValue = "true")
public class MyFeatureAutoConfiguration {// 配置项 myapp.feature.enabled 值为 true 时,创建该 Bean@Beanpublic MyFeature myFeature() {return new MyFeature();}
}

在上面的示例中,如果应用程序配置文件中名为 “myapp.feature.enabled” 的属性值为 “true”,则该 MyFeatureAutoConfiguration 配置类中的 myFeature() 方法将被调用创建一个 MyFeature 的实例并将其注入到应用程序上下文中,否则 MyFeature 不会被创建。

http://www.yayakq.cn/news/593105/

相关文章:

  • 在线简历制作网站免费百度能做网站建设吗
  • 网站展示型推广装饰网站模版
  • 潢川城乡建设局网站桂林旅游网
  • 网站文风建设宠物网站的可行性
  • 网站运营管理的内容有哪些一个网站开发团队
  • 本科学计算机是做网站吗网站备案号要怎么查询
  • 西部数码网站管理助手 mysql门户网站是不是新媒体
  • 移动端网站建设原则wordpress 做管理系统
  • 建设部网站官网办事大厅网络优化工程师能干一辈子吗
  • 物流企业网站建设特色如何制作wordpress短代码
  • 网站建设行业好做吗深圳龙岗现在算什么风险地区
  • 重庆孝爱之家网站建设敦煌网站外引流怎么做
  • 做网站困难嘛线上线下推广是什么意思
  • 女生做网站编辑好吗公司网站域名到期
  • 上海网站建设-网建知识视频直播系统
  • 西安做网站程序icp备案查询站长之家
  • 网站开发维护关键技术团队架构
  • 做景观素材有哪几个网站wordpress 小工具 不显示
  • 学院网站建设流程图全球网站排名前100
  • 工商企业网站取个公司名称大全
  • 怎样做淘宝网站个人或主题网站建设实验报告
  • php大型网站设计如何查看网站开发者
  • 万网网站建设教程赤峰建设银行网站
  • 赌钱网站怎么做的如何做网站二维码
  • 网站按钮特效html网页课程设计报告
  • 网站建设助您购选武昌网站建设 优帮云
  • 可视化网站建设九江市住房和城乡建设厅网站
  • 苏州建网站要多少钱九龙坡集团网站建设
  • 自适应网站制作简创网络诚信网站的申请有几家公司可以做的
  • 做网站什么需要好国内免费视频素材无水印素材网站