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

【spring】spring5特性

1、整个 Spring5 框架的代码基于 Java8,运行时兼容 JDK9,许多不建议使用的类和方 法在代码库中删除

日志框架

2、Spring 5.0 框架自带了通用的日志封装
(1)Spring5 已经移除 Log4jConfigListener,官方建议使用 Log4j2
(2)Spring5 框架整合 Log4j2
第一步 引入 jar 包
image.png

log4j有安全问题,需要下载2.15版本以上的

第二步 创建 log4j2.xml 配置文件

        <?xml version="1.0" encoding="UTF-8"?>  <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE >   ALL -->  <!--Configuration 后面的 status 用于设置 log4j2 自身内部的信息输出,可以不设置,  当设置成 trace 时,可以看到 log4j2 内部各种详细输出-->  
<configuration status="INFO">  <!--先定义所有的 appender-->    <appenders>  <!--输出日志信息到控制台-->  <console name="Console" target="SYSTEM_OUT">  <!--控制日志输出的格式-->  <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-  
5level %logger{36} - %msg%n"/>  </console>    </appenders>    <!--然后定义 logger,只有定义 logger 并引入的 appender,appender 才会生效-->  <!--root:用于指定项目的根日志,如果没有单独指定 Logger,则会使用 root 作为  默认的日志输出-->  <loggers>  <root level="info">  <appender-ref ref="Console"/>  </root>    </loggers>
</configuration>

image.png

@Nullable

(1)@Nullable 注解可以使用在方法上面,属性上面,参数上面,表示方法返回可以为空,属性值可以 为空,参数值可以为空
(2)注解用在方法上面,方法返回值可以为空
Pasted image 20220618160839.png

(3)注解使用在方法参数里面,方法参数可以为空

Pasted image 20220618160819.png

(4)注解使用在属性上面,属性值可以为空

Pasted image 20220618160830.png

函数式风格

//函数式风格创建对象,交给 spring 进行管理  
@Test  
public void testGenericApplicationContext() {  //1 创建 GenericApplicationContext 对象  GenericApplicationContext context = new GenericApplicationContext();  //2 调用 context 的方法对象注册  context.refresh();  context.registerBean("user1",User.class,() -> new User());  //3 获取在 spring 注册的对象  // User user = (User)context.getBean("com.atguigu.spring5.test.User");  User user = (User)context.getBean("user1");  System.out.println(user);  }

JUnit5


@ExtendWith(SpringExtension.class)  
@ContextConfiguration("classpath:bean1.xml")  
public class JTest5 {  @Autowired  private UserService userService;  @Test  public void test1() {  userService.accountMoney();  }  
}  

或者


@SpringJUnitConfig(locations = "classpath:bean1.xml")  
public class JTest5 {  @Autowired  private UserService userService;  @Test  public void test1() {  userService.accountMoney();  }  
}

相关文章:

【spring】spring5特性

1、整个 Spring5 框架的代码基于 Java8&#xff0c;运行时兼容 JDK9&#xff0c;许多不建议使用的类和方 法在代码库中删除 日志框架 2、Spring 5.0 框架自带了通用的日志封装 &#xff08;1&#xff09;Spring5 已经移除 Log4jConfigListener&#xff0c;官方建议使用 Log4j…...

曹云金回归、于谦电影杀青,德云社想不火都难

说起民间最大的相声社团&#xff0c;首屈一指的要属德云社&#xff0c;之所以说德云社最大&#xff0c;主要是优秀相声演员够多。德云社在郭德纲的带领下&#xff0c;如今已经是人才济济&#xff0c;听说最近队伍会进一步壮大&#xff0c;前徒弟曹云金也要回归了。 当年曹云金作…...

从入门到精通:数据库设计规范指南

当我们开始设计数据库时&#xff0c;我们需要确保它是可靠和可扩展的。为了实现这一目标&#xff0c;我们需要遵循一些数据库设计规范。本文将介绍一些数据库设计规范&#xff0c;以确保您的数据库能够满足当前和未来的业务需求。 目录 一、命名规则 二、数据类型 三、索引…...

js 求解《初级算法》8.字符串转换整数(atoi)

一、题目描述 请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数 算法如下&#xff1a; 读入字符串并丢弃无用的前导空格 检查下一个字符&#xff08;假设还未到字符末尾&#xff09;为正还是负号&#xff0c;读取该字符&#xff…...

Vue学习笔记(5)

5.1 其他常用内置指令 5.1.1 v-text v-text是Vue.js中常用的内置指令之一&#xff0c;用于将数据绑定到DOM元素的文本内容。与双花括号&#xff08;{{ }}&#xff09;类似&#xff0c;v-text指令也可以将Vue实例中的数据渲染到页面上。 使用v-text指令时&#xff0c;Vue会将指…...

LeetCode 面试题 05.02. Binary Number to String LCCI【字符串,数学】中等

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…...

数据结构 “串“ 的补充提升与KMP算法及其优化的具体实现

❤️作者主页&#xff1a;微凉秋意 ✅作者简介&#xff1a;后端领域优质创作者&#x1f3c6;&#xff0c;CSDN内容合伙人&#x1f3c6;&#xff0c;阿里云专家博主&#x1f3c6; ✨精品专栏&#xff1a;C面向对象 &#x1f525;系列专栏&#xff1a;数据结构与课程设计 文章目录…...

如何使用Spring Cloud搭建MQ(Message Queue)消息队列

Spring Cloud是一个开源框架&#xff0c;用于构建基于微服务架构的应用程序。它提供了多种工具和技术&#xff0c;用于实现各种微服务模式&#xff0c;并使它们易于管理和部署。MQ&#xff08;消息队列&#xff09;则是一种重要的异步通信机制&#xff0c;用于在不同的应用程序…...

iphone备忘录删除怎么恢复?分享苹果数据找回办法

手机备忘录上写记录&#xff0c;这是不少上班族的小习惯。因为它可以先记录紧急事务&#xff0c;然后再慢慢的解决。也可以把我们一些重要的账号密码存在备忘录里&#xff0c;方便在何时何地直接登入使用。那么如果我们不小心删除了iphone备忘录呢?碰到这种事该怎么办呢?有没…...

【PPT】《我去!还有这种网站?》-知识点目录

《我去&#xff01;还有这种网站&#xff1f;》 1. Vega AI 输入提示&#xff1a; girl&#xff0c;粉头发2. 物理画线&#xff1a;休闲小游戏 3. Dialogue&#xff1a;影视台词搜索 4. Can you run it&#xff1a;游戏设备要求查询 5. Deviceshots&#xff1a;使用设备边…...

SQL 将查询结果插入到另一张表中

INSERT INTO &#xff08;1&#xff09; 如果两张表&#xff08;导出表和目标表&#xff09;的字段一致&#xff0c;并且希望插入全部数据&#xff0c;可以用这种方法&#xff1a; INSERT INTO 目标表 SELECT * FROM 来源表 WHERE 条件;例如&#xff0c;要将 test 表插入到 n…...

代码随想录算法训练营day48 | 动态规划 121 买卖股票的最佳时机 122 买卖股票的最佳时机II

day48121. 买卖股票的最佳时机1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组122.买卖股票的最佳时机II121. 买卖股票的最佳时机 题目链接 解题思路&#xff1a; 动规五部曲分析如下&#xff1a…...

MediaTek 天玑 8000 5G移动平台详细参数

MediaTek 天玑 8000 移动平台 采用先进的 台积电 5nm 工艺&#xff0c;拥有出众的性能和能效&#xff0c;为高端智能手机用户提供出色的高帧率游戏和 5G 移动体验。 天玑 8000 采用了 MediaTek 诸多先进技术&#xff0c;内置 MediaTek Imagiq 780影像引擎、第五代 AI 处理器APU…...

Kafka

这里写目录标题1.Kafka1.1 Kafka概述1.2 kafka安装和配置1.3 入门案例1.4 kafka生产者详解1.4.1 生产者的参数1.Kafka 1.1 Kafka概述 Kafka 是一个分布式流媒体平台,类似于消息队列或企业消息传递系统。 producer&#xff1a;发布消息的对象称之为主题生产者&#xff08;Ka…...

数据结构——第三章 栈与队列(2)

栈的运用1.括号匹配2.表达式求值2.1.算术表示式的形式2.2.后缀表达式求值2.3.将算术表达式转换为后缀表达式2.4.算术表达式直接求值3.栈与递归3.1.递归算法3.2.栈与函数调用3.3.递归工作与递归函数3.4.递归到非递归的转换1.括号匹配 void matching(char str[]) {//创建空栈Lin…...

【Linux学习】基础IO——理解缓冲区 | 理解文件系统

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 基础IO☕理解缓冲区&#x1f9c3;缓冲区的共识&#x1f9c3;缓冲区的位置&#x1f9c3;缓冲区的刷…...

RHCSA-重置root密码(3.3)

方法1&#xff1a;rd.break &#xff08;1&#xff09;首先重启系统&#xff0c;在此页面按e键&#xff0c;在屏幕上显示内核启动参数 &#xff08;2&#xff09;知道linux这行&#xff0c;末尾空格后输入rd.break&#xff0c;然后按ctrlx &#xff08;3&#xff09;查看&#…...

无公网IP快解析实现U+随时随地访问

现阶段商品从生产到消费者手中要经过多个环节&#xff0c;为实现对每一个环节进行管理&#xff0c;越来越多的企业选择通过信息化手段来实现。供应链管理系统配合供应链中各实体的业务需求&#xff0c;使操作流程和信息系统紧密配合&#xff0c;做到各环节无缝链接&#xff0c;…...

UVa 307 Sticks 木棍拼接 ID 迭代加深搜

题目链接&#xff1a;Sticks 题目描述&#xff1a; 小明一开始有一些长度相等的木棍&#xff0c;小明现在将木棍砍成了一些长度为整数的木棍&#xff0c;他现在忘记了最开始木棍的长度&#xff0c;你需要找到最短的可能木棍长度&#xff0c;例如给定5,2,1,5,2,1,5,2,15,2,1,5,2…...

阿里云(CentOS)中MySQL8忘记密码的解决方法

阿里云(CentOS)中MySQL8忘记密码的解决方法 方法 在 skip-grant-tables 模式下启动 MySQL&#xff0c;该模式下启动 MySQL 时不启动授权表功能&#xff0c;可以直接免密码登录 实现 编辑 /etc/my.cnf 文件 vim /etc/my.cnf在 [mysqld] 区域末尾添加配置&#xff0c;设置免密…...

终极指南:如何免费使用Umi-OCR实现高效离线文字识别

终极指南&#xff1a;如何免费使用Umi-OCR实现高效离线文字识别 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片&#xff0c;PDF文档识别&#xff0c;排除水印/页眉页脚&#xff0c;扫描/生成二维码。内置多国语言库…...

开源状态监控工具openclaw-status:从原理到部署的完整实践指南

1. 项目概述&#xff1a;一个开源状态监控工具的诞生最近在折腾一个开源项目&#xff0c;叫openclaw-status&#xff0c;是vibe-with-me-tools组织下的一个子项目。简单来说&#xff0c;这是一个用于监控和展示各种服务、应用、设备状态的工具。听起来是不是有点像那些商业化的…...

基于开关电容器的级联多电平逆变器,使用布尔PWM控制技术研究(Simulink仿真实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

云雾栖茶山,在云顶山读懂一片茶叶的蜕变旅程

位于福建省安溪县西坪镇的云顶山茶园&#xff0c;是一处融合了茶叶种植与传统制茶工艺的生态旅游区。该区域海拔约800米&#xff0c;常年云雾缭绕&#xff0c;土壤富含矿物质&#xff0c;为茶树生长提供了适宜的自然条件。景区以乌龙茶种植为核心&#xff0c;围绕“从叶片到茶杯…...

基于官方API的WhatsApp AI助手集成:规避封号风险与实战部署指南

1. 项目概述&#xff1a;为你的AI助手开通一个安全的WhatsApp专线 如果你正在使用OpenClaw构建自己的AI助手&#xff0c;并且希望它能通过WhatsApp与用户自然交流&#xff0c;那么你很可能已经研究过各种方案了。市面上常见的方案&#xff0c;比如基于 whatsapp-web.js 或 …...

如何做谷歌SEO排名优化?搞定高质量外链的4种高成功率技巧

很多刚接触谷歌SEO的朋友发现&#xff0c;自己的网站内容写了不少&#xff0c;可排名始终在搜索结果的五六页开外晃悠。排除掉网站技术层面的小毛病&#xff0c;最让大家头疼的往往就是外链。你可以把外链看作是其他网站给你的“信任投票”&#xff0c;如果投给你的都是些街边的…...

ctf show web 入门46

这道题目是上一题的升级版&#xff0c;过滤条件变得更加苛刻了。我们来分析一下新增的限制以及应对方案。 代码审计与变化 相比之前&#xff0c;正则过滤 preg_match 新增了以下内容&#xff1a; [0-9]&#xff1a;禁止使用任何数字。这意味着 $IFS$9 这种绕过方式失效了。 \$&…...

计算机视觉入门:从OpenCV到PyTorch的实践指南

1. 项目概述&#xff1a;从“萌芽”到“入行”的视觉之旅 “对计算机视觉的萌芽迷恋”——这个标题精准地捕捉了无数技术爱好者&#xff0c;包括我自己&#xff0c;最初踏入这个领域时的心路历程。它描述的是一种状态&#xff1a;你或许被一张AI生成的艺术图片所震撼&#xff…...

Hermit:项目级环境隔离工具,告别开发环境冲突

1. 项目概述&#xff1a;从“隐士”到现代开发者的效率革命如果你和我一样&#xff0c;常年与终端为伴&#xff0c;每天在多个项目、不同编程语言和工具链之间切换&#xff0c;那你一定对那种“环境错乱”的痛楚深有体会。前一秒还在用 Python 3.11 调试一个数据脚本&#xff0…...

从零构建Telegram天气机器人:Python异步编程与API集成实战

1. 项目概述&#xff1a;一个能聊天的天气机器人 如果你用过Telegram&#xff0c;大概率会见过或者用过一些机器人。它们能帮你查新闻、翻译、管理任务&#xff0c;甚至陪你聊天。今天要聊的这个项目&#xff0c; imkarimkarim/Telegram-Weather-Bot &#xff0c;就是一个典型…...