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

dedecms 把自己的网站添加进去/自己如何做链接推广

dedecms 把自己的网站添加进去,自己如何做链接推广,网络广告的收费模式有哪些,汕头门户网站建设文章目录 具体步骤附录 笔者的操作环境: Spring Cloud Alibaba:2022.0.0.0-RC2 Spring Cloud:2022.0.0 Spring Boot:3.0.2 Nacos 2.2.3 Maven 3.8.3 JDK 17.0.7 IntelliJ IDEA 2022.3.1 (Ultimate Edition) 具体步骤 因为 …

文章目录

  • 具体步骤
  • 附录

笔者的操作环境:

  • Spring Cloud Alibaba:2022.0.0.0-RC2

  • Spring Cloud:2022.0.0

  • Spring Boot:3.0.2

  • Nacos 2.2.3

  • Maven 3.8.3

  • JDK 17.0.7

  • IntelliJ IDEA 2022.3.1 (Ultimate Edition)

具体步骤

  1. 因为 Spring Boot 已经内置了 Logback,所以需要先将 Logback 移除。移除的方法是在 Spring Boot 依赖包中移除 Logback。

    <exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion>
    </exclusions>
    

    比如就像这样:

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions>
    </dependency>
    

    【踩坑提醒】

      如何使用了 Maven 多模块,必须在所有依赖 Logback 的依赖包中将 Logback 排除,否则 Spring Boot 启动时会发生如下报错:

    SLF4J: Class path contains multiple SLF4J providers.
    SLF4J: Found provider [ch.qos.logback.classic.spi.LogbackServiceProvider@4f51b3e0]
    SLF4J: Found provider [org.apache.logging.slf4j.SLF4JServiceProvider@4b9e255]
    SLF4J: See https://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual provider is of type [ch.qos.logback.classic.spi.LogbackServiceProvider@4f51b3e0]
    

    比如,下面这两个 Spring Boot 依赖包中都依赖了 Logback,所以都要排除 Logback。

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions>
    </dependency>
    
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions>
    </dependency>
    

    如果想确定自己的 Maven 模块有没有依赖 Logback,可以在 IntelliJ IDEA 中查看。

    在这里插入图片描述

    比方说,下面这种情况就属于同时依赖了 Logback、Log4j2,这样 Spring Boot 就会在启动时报错。

    在这里插入图片描述


  2. 引入与 Spring Boot 适配的 Log4j2 依赖包。

    <!-- 设置 SLF4J 与之绑定的日志包。无需提供 SLF4J 的 JAR 包,因为 Lombok 已经提供了 -->
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId><version>Spring Boot 的版本</version>
    </dependency>
    

    此依赖包的版本与 Spring Boot 是一致的。如果不清楚应该使用什么版本,可以去 Maven 仓库中查询。Maven 仓库官网:https://mvnrepository.com/


    【提示】

      对于不使用 Spring Boot 的项目,使用的是如下经典 Log4j2 依赖配置。使用 Spring Boot 之后,此依赖配置是多余的。

    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>Log4j2 的版本</version>
    </dependency>
    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>Log4j2 的版本</version>
    </dependency>
    <!-- 设置 SLF4J 与之绑定的日志包。无需提供 SLF4J 的 JAR 包,因为 Lombok 已经提供了 -->
    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>Log4j2 的版本</version>
    </dependency>
    

    读者可以自行检查,Spring Boot 适配的 Log4j2 依赖包已经包含了上述经典 Log4j2 依赖配置。

    在这里插入图片描述


  3. 提供 Log4j2 的日志配置文件。

    如果不提供此配置,则 Spring Boot 会提供一个默认配置。通常,默认配置也不是很糟糕,但它有一个严重的问题,它不会将日志输出至文件来备份。因此,不能使用默认配置。

    一个示例的 Log4j2 的日志配置如下,读者可以自行变更为自己喜欢的配置。

    <?xml version="1.0" encoding="UTF-8"?><configuration status="OFF"><Properties><property name="console_log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] [%t] %l %n %m%n</property><property name="file_log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] [%t] %C.%M[%L line] %n %m%n</property><property name="every_file_size">20MB</property></Properties><appenders><Console name="Console" target="SYSTEM_OUT"><ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="${console_log_pattern}"/></Console><RollingFile name="DEBUG" fileName="./log/log4j2/debug.log"filePattern="./log/log4j2/debug_log_archive/debug-%d{yyyy-MM-dd}-%i.log.zip"><PatternLayout pattern="${file_log_pattern}"/><Policies><SizeBasedTriggeringPolicy size="${every_file_size}"/></Policies><Filters><ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/></Filters></RollingFile><RollingFile name="INFO" fileName="./log/log4j2/info.log"filePattern="./log/log4j2/info_log_archive/info-%d{yyyy-MM-dd}-%i.log.zip"><PatternLayout pattern="${file_log_pattern}"/><Policies><SizeBasedTriggeringPolicy size="${every_file_size}"/></Policies><Filters><ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/></Filters></RollingFile><RollingFile name="WARN" fileName="./log/log4j2/warn.log"filePattern="./log/log4j2/warn_log_archive/warn-%d{yyyy-MM-dd}-%i.log.zip"><PatternLayout pattern="${file_log_pattern}"/><Policies><SizeBasedTriggeringPolicy size="${every_file_size}"/></Policies><Filters><ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/></Filters></RollingFile><RollingFile name="ERROR" fileName="./log/log4j2/error.log"filePattern="./log/log4j2/error_log_archive/error-%d{yyyy-MM-dd}-%i.log.zip"><PatternLayout pattern="${file_log_pattern}"/><Policies><SizeBasedTriggeringPolicy size="${every_file_size}"/></Policies><Filters><ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/></Filters></RollingFile></appenders><loggers><!-- 属性 level 是用于设置最低需要输出的日志输出级别 --><root level="DEBUG"><appender-ref ref="Console"/><appender-ref ref="DEBUG"/><appender-ref ref="INFO"/><appender-ref ref="WARN"/><appender-ref ref="ERROR"/></root></loggers>
    </configuration>
    
  4. Log4j2 的日志配置文件编写完成之后,可以放在 Maven 模块的 resource 目录下,如下图所示。

    在这里插入图片描述

    然后,在 Spring Boot 配置文件(如 application.yml)中使用如下代码引入该配置。

    logging:config: classpath:log4j2.xml
    

    如果 Log4j2 的日志配置文件名为 log4j2.xmllog4j2-spring.xml,且放在 resource 目录下,那就算是不在 Spring Boot 配置文件中引入此 Log4j2 的日志配置,Spring Boot 也会自动读取该 Log4j2 的日志配置。不过,最好还是显式地引入此配置。


    【注意】

      如果使用了 Maven 多模块,则此 Log4j2 的日志配置文件和 Spring Boot 配置文件只能放在 Spring Boot 入口模块中。不要在一种没有程序启动入口的 Maven 库模块中放置此配置文件


  5. 前面已经导入了 Log4j2,现在来考虑 SLF4J。

    SLF4J 是一种门面日志,它只要发现导入了 Log4j2,它就会自动使用它。

    幸运的是,有一个众所周知的插件叫 Lombok,它已经内置了 SLF4J。因此只要使用 Lombok,就可以不需要引入 SLF4J 依赖。

  6. 引入 Lombok 的依赖代码如下。

    <!-- 注意:Lombok 不会在依赖中被继承 -->
    <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>Lombok 的版本</version><scope>provided</scope>
    </dependency>
    
  7. 然后,在需要使用 SLF4J 的类上使用注解 @Slf4j。这样就可以直接在代码中使用 log.xxx(...) 来使用 Log4j2 日志了。

    @Slf4j
    public class UserAvatarController {// ...省略其它内容...public void fun(HttpServletRequest request, HttpServletResponse response) {log.info("fun called");
    }
    

附录

  • Log4j2

    • Log4j2 的开源地址:https://github.com/apache/logging-log4j2

    • Log4j2 官方文档:https://logging.apache.org/log4j/2.x/manual/index.html

  • SLF4J

    • SLF4J 官网:https://www.slf4j.org/

    • SLF4J 官方文档:https://www.slf4j.org/docs.html

相关文章:

如何在 Spring Boot 中集成日志框架 SLF4J、Log4j

文章目录 具体步骤附录 笔者的操作环境&#xff1a; Spring Cloud Alibaba&#xff1a;2022.0.0.0-RC2 Spring Cloud&#xff1a;2022.0.0 Spring Boot&#xff1a;3.0.2 Nacos 2.2.3 Maven 3.8.3 JDK 17.0.7 IntelliJ IDEA 2022.3.1 (Ultimate Edition) 具体步骤 因为 …...

如何在Linux布置nginx(附带Nginx基本操作步骤)

文章目录 前言一、下载环境依赖二、下载nginx安装包三、具体操作流程总结 前言 提示&#xff1a;下述操作步骤适合内网服务器、局域网服务器和公网服务器。 不足之处欢迎交流指正&#xff0c;不喜勿喷。 一、下载环境依赖 yum -y install gcc zlib zlib-devel pcre-devel ope…...

Xcode升级导致关联库报错

想办法找到对应的库 然后到 Build Phases -- LinkBinary With Libraries中点击&#xff0c;选择对应的framework即可&#xff0c;就像我工程的报错 Undefined symbol: _OBJC_CLASS_$_ADClient _OBJC_CLASS_$_ASIdentifierManager 缺失的库是AdSupport.framework 添加后再次编…...

利用docker run --rm 命令实现使用宿主机中没有的命令

利用docker run --rm 命令实现使用宿主机中没有的命令 使用容器中的jar命令解压jar包&#xff0c;并将解压内容输出到挂载在宿主机中的目录里使用宿主机中没有的nmap命令来通过端口找IP 使用容器中的jar命令解压jar包&#xff0c;并将解压内容输出到挂载在宿主机中的目录里 do…...

中级课程——XSS

文章目录 介绍挖掘思路分类反射型存储型dom类型 介绍 挖掘思路 注入点&#xff1a;各种输入框 测试代码&#xff08;poc&#xff09;&#xff1a;js语句 分类 反射型 存储型 dom类型...

win10+Vmware+ubuntu18 mosquitto调试记录

记录一下在建立mqtt调试环境上遇到的问题及对策。 我的PC环境为&#xff0c;win10为办公环境&#xff0c;Vmware虚拟机安装ubuntu18&#xff0c;虚拟机主要用来进行代码编译&#xff0c;建立mosquitto server测试环境。 1. ubuntu 安装mosquitto 安装mosquitto网上很多教程&…...

Java EE 突击 9 - Spring Boot 日志文件

Spring Boot 日志文件 学习目标一 . 日志有什么用1.1 日志格式说明 二 . 自定义日志打印2.1 得到日志对象2.2 使用日志对象提供的方法 , 输出自定义的日志内容2.3 日志的级别 三 . 日志持久化3.1 在配置文件里面设置日志名称3.2 设置日志的保存目录 四 . 日志级别的设置五 . 简…...

篇十六:命令模式:封装请求

篇十六&#xff1a;"命令模式&#xff1a;封装请求" 开始本篇文章之前先推荐一个好用的学习工具&#xff0c;AIRIght&#xff0c;借助于AI助手工具&#xff0c;学习事半功倍。欢迎访问&#xff1a;http://airight.fun/。 另外有2本不错的关于设计模式的资料&#x…...

Android 系统框架

启动流程 init 进程启动过程 Android系统启动流程 Zygote启动流程及源码分析 APP启动流程 init进程是Android用户空间第一个进程&#xff0c;主要做以下3件事情&#xff1a; 创建和挂载启动所需的文件目录。初始化和启动关键服务&#xff0c;守护关键服务。解析init.rc配…...

【Hystrix技术指南】(3)超时机制的原理和实现

[每日一句] 也许你度过了很糟糕的一天&#xff0c;但这并不代表你会因此度过糟糕的一生。 [背景介绍] 分布式系统的规模和复杂度不断增加&#xff0c;随着而来的是对分布式系统可用性的要求越来越高。在各种高可用设计模式中&#xff0c;【熔断、隔离、降级、限流】是经常被使…...

MySQL: Failed to Connect to MySQL at XXXX:3306 with user root

客户端连接MySQL服务器&#xff0c;报错&#xff1a; 解决方案&#xff1a; 没有让root用户远程登录&#xff0c;需要设置&#xff1b; 进入MySQL服务器&#xff0c;修改一下 # mysql -h localhost -uroot -P3306 -p12345678 mysql: [Warning] Using a password on the comm…...

《大型网站技术架构设计》第二篇 架构-性能

不同视角下的网站性能 1、用户 从用户角度&#xff0c;网站性能就是用户在浏览器上直观感受到的网站响应速度快还是慢。用户感受到的时间。 2、开发人员 开发人员关注的主要是应用程序本身及其相关子系统的性能&#xff0c;包括响应延迟、系统吞吐量、并发处理能力、系统稳定…...

谷歌推出AI模型机器人RT2 将文本和图像输出为机器人动作

去年年底&#xff0c;ChatGPT火遍全球&#xff0c;全世界都见识了大语言模型的强大力量。人们对大模型不再陌生&#xff0c;开始使用基于大模型的应用绘画、作图、搜索资料、设计剧情等&#xff0c;而妙用不止于此。谷歌推出了Robotics Transformer 2(RT2)&#xff0c;这是一个…...

常见的服务器安全管理漏洞

常见的服务器安全管理漏洞 企业信息化技术的应用&#xff0c;以不可逆转。随着文件服务器、ERP管理软件等等在企业中生根发芽&#xff0c;应用服务器也逐渐在企业中普及起来。以前在企业中有一台应用服务器已经是了不起的事情&#xff0c;现在有两台、三台的&#xff0c;也不为…...

JavaScript高级:探索作用域链的神秘面纱

在 JavaScript 的编程世界中&#xff0c;作用域是一种控制变量可访问性和生命周期的机制。而作用域链则是闭包的关键所在&#xff0c;它使得函数在创建时捕获并保存了外部作用域的变量&#xff0c;为 JavaScript 增添了更多的魔力。本文将深入探讨作用域链的概念和作用&#xf…...

mysql数据库如何转移到oracle

mysql数据库转移到oracle 在研发过程中&#xff0c;可能会用到将表数据库中的表结构及数据迁移到另外一种数据库中&#xff0c; 比如说从mysql中迁移到oracle中&#xff0c; 常用的方法有好些&#xff0c;如下 1、使用powerdesigner&#xff0c;先连接mysql然后生成mysql的p…...

nnU-Net 终极指南

一、说明 了解最先进的nnU-Net以及如何将其应用于您自己的数据集所需的一切。使用nnU-Net&#xff0c;这是语义图像分割中非常强大的基线。在本指南中&#xff0c;您将&#xff1a; 对nnU-Net的主要贡献进行简要概述。了解如何将 nnU-Net 应用于您自己的数据集。 但是&#xff…...

ubuntu 安装 python

ubuntu 安装 python 初环境与设备查询是否安装安装python 本篇文章将介绍ubuntu 安装 python 初 希望能写一些简单的教程和案例分享给需要的人 环境与设备 系统&#xff1a;ubuntu 查询是否安装 因为系统也许会自带一个python&#xff0c;所以验证一下&#xff0c;如果自…...

【腾讯云 Cloud studio 实战训练营】云端 IDE 构建移动端H5

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;2022年度博客之星前端领域TOP 2&#xff0c;前端领域优质作者、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步…...

Kubernetes 之 Kubeadm 搭建

Kubeadm 搭建 一、搭建准备1.1 环境准备1.2 所有节点安装docker1.3 所有主机安装 cri-dockerd1.4 所有节点安装kubeadm&#xff0c;kubelet和kubectl1.5 部署K8S集群1.6 设定kubectl1.7 部署 Dashboard 一、搭建准备 master&#xff08;2C/4G&#xff0c;cpu核心数要求大于2&a…...

Qt应用开发(基础篇)——堆栈窗口 QStackedWidget

一、前言 QStackedWidget继承于QFrame&#xff0c;QFrame继承于QWidget&#xff0c;是Qt常用的堆栈窗口部件。 框架类QFrame介绍 QStackedWidget堆栈窗口&#xff0c;根据下标切换&#xff0c;一次显示一个小部件&#xff0c;常用于应用界面切换、图片轮询播放等场景。 二、QSt…...

浅谈测试开发岗位

一、测试开发的概念与需求 测试开发&#xff0c;通常也被称为自动化测试&#xff0c;是一个涵盖了从测试设计、开发、执行和结果分析等一系列活动的职位。在软件开发的生命周期中&#xff0c;测试开发起着至关重要的作用&#xff0c;其主要目标是确保软件的质量和性能达到预期…...

典型移动APP安全风险提醒

研究背景 随着互联网和移动设备的发展&#xff0c;手机已成为人人都拥有的设备&#xff0c;各式各样的App更是丰富了人们的生活&#xff1a;从社交到出行、从网购到外卖&#xff0c;从办公到娱乐等&#xff0c;App已成为大众生活必需品。然而&#xff0c;App的流行使人们对App…...

多平台发布文章-项目总结

做个最近的AIGC内容创作技术要点的总结吧&#x1f63c; 流程图 时序图...

什么是IoC?什么是Spring IoC?什么是DI?

首先说明 IoC 是一种思想&#xff0c;IoC的全称是Inversion of Control&#xff0c;翻译成中文叫做“控制反转” 用人话来说&#xff0c;IoC的思想就是将一个对象对另一个对象的控制权交出去&#xff08;不必关心交给谁&#xff09;&#xff0c;从而让对象之间的依赖关系降低&…...

分布式任务调度平台XXL-JOB学习笔记-helloworld运行

环境&#xff1a;win10 eclipse java17 mysql8.0.17 xxl-job 2.4 源码&#xff1a;https://github.com/xuxueli/xxl-job/ 导入时按Existing Maven Projects导入&#xff0c;先导入xxl-job-admin&#xff08;管理平台&#xff09;和xxl-job-executor-sample-springboot&#x…...

维护工程师提升设备管理水平的5个技巧

维护在工业工厂中扮演着至关重要的角色&#xff0c;而在这一关键领域&#xff0c;维护工程师发挥着关键作用。无论是混合还是离散自动化产线&#xff0c;设备的正常运行和保养对于确保生产的持续性至关重要。为了实现高效、成功的维护&#xff0c;维护工程师需要采取一系列方法…...

解码大众全新数字高尔夫8汽车CAN FD行驶功能电气架构

据在大众原厂的伙伴介绍&#xff0c;全新数字高尔夫8将在11月上市销售&#xff0c;目前高尔夫8在行驶功能电气架构上采用的CAN FD&#xff0c;在多媒体这一块采用的以太网&#xff0c;后续估计大部分类似同样MQBEvo平台的车型均会复制升级过来&#xff0c;那么&#xff0c;未来…...

什么是DDL、MDL?

DDL和MDL是与数据库相关的术语&#xff0c;它们有一些不同的含义。 DDL&#xff08;Data Definition Language&#xff0c;数据定义语言&#xff09;&#xff1a; DDL用于定义和管理数据库中的对象&#xff0c;如表、索引、视图等。它包含用于创建、修改、删除和管理数据库对象…...

【sonar】安装sonarQube免费社区版9.9【Linux】【docker】

文章目录 ⛺sonarQube 镜像容器⛺Linux 安装镜像&#x1f341;出现 Permission denied的异常&#x1f341;安装sonarQube 中文包&#x1f341;重启服务 ⛺代码上传到sonarQube扫描&#x1f341;java语言配置&#x1f341;配置 JS TS Php Go Python⛏️出现异常sonar-scanner.ba…...