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

spring入门

spring入门

spring6最低要求Java17


程序开发

依照maven配置完成后

第一步:添加依赖

Spring Farmework和junit

第二步:创建Java类

第三步:创建Spring配置文件beans.xml在resources目录中。

创建Spring Config,配置文件可随意命名

第四步:将Hello类对象交给Spring的IOC容器管理,配置Hello对应的bean。

第五步:创建测试类进行测试

将该类从配置文件中取出bean,并执行


程序开发分析

底层通过反射机制调用无参数构造方法

反射 -》 动态获取对象信息与调用方法的功能

    在运行时判断任意一个对象所属的类;

    在运行时构造任意一个类的对象;

    在运行时判断任意一个类所具有的成员变量和方法;

在运行时调用任意一个对象的方法。

`Java`反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为`Java`语言的反射机制。

Spring创建对象原理

dom4j解析beans.xml文件,从中获取class属性值,类的全类名

通过反射机制调用无参数构造方法创建对象

dom4j -》 Java的XML API

用于读写XML文件

API -》 一组在Java编程中使用的函数和类库, 供了一套访问主机系统资源的标准方法。

API随JDK提供,以类的形式存在于JDK。

利用API创建对象

getDeclaredConstructor()用于获取类指定构造方法,这里获取类无参构造方法。

newInstance()用于创建对象。

bean对象储存在spring容器,在spring源码底层就是一个map集合


引入Log4j2日志框架

用于程序执行时,详细控制台的记录,帮助快速定位并解决问题

在执行测试类时,控制台通过log4j2输出执行的类和时间等信息

引入依赖

创建log4j2.xml(固定名)在resouces目录中常见XMl文件并添加如下代码

<?xml version="1.0" encoding="UTF-8"?><configuration><loggers><!--level指定日志级别,从低到高的优先级:TRACE < DEBUG < INFO < WARN < ERROR < FATALtrace:追踪,是最低的日志级别,相当于追踪程序的执行debug:调试,一般在开发中,都将其设置为最低的日志级别info:信息,输出重要的信息,使用较多warn:警告,输出警告的信息error:错误,输出错误信息fatal:严重错误--><root level="DEBUG"><appender-ref ref="spring6log"/><appender-ref ref="RollingFile"/><appender-ref ref="log"/></root></loggers><appenders><!--输出日志信息到控制台--><console name="spring6log" target="SYSTEM_OUT"><!--控制日志输出的格式--><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-3level %logger{1024} - %msg%n"/></console><!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临时测试用--><File name="log" fileName="d:/spring6_log/test.log" append="false"><PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/></File><!-- 这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档--><RollingFile name="RollingFile" fileName="d:/spring6_log/app.log"filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"><PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/><SizeBasedTriggeringPolicy size="50MB"/><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 --><DefaultRolloverStrategy max="20"/></RollingFile></appenders></configuration>

使用log4j2代替sout输出控制台信息

创建Logger类的logger对象,使用logger.info()方法

相关文章:

  • 【二进制部署k8s-1.29.4】十一、metallb的安装部署
  • 【FPGA】Verilog语言从零到精通
  • Unity世界坐标下UI始终朝向摄像机
  • LangChain学习之prompt格式化与解析器使用
  • FreeReg运行笔记
  • vim常用使用技巧
  • 多目标应用:NSGA2求解无人机三维路径规划(MATLAB代码)
  • 【C++题解】1074 - 小青蛙回来了
  • CLion配置
  • 在今日头条上写文章:ChatGPT完整使用教程
  • 【qt】项目移植
  • elk:使用filebeat采集日志发送到kafka
  • Java装饰器模式,装饰器模式通常通过创建一个接口和一个或多个实现了该接口的类来开始,然后创建装饰器类,这些类也实现了相同的接口
  • MC联机无法连接到服务器怎么解决
  • 【WRF理论第二期】运行模型的基础知识
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • CentOS7 安装JDK
  • const let
  • If…else
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Node 版本管理
  • Python 基础起步 (十) 什么叫函数?
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Redis中的lru算法实现
  • spring cloud gateway 源码解析(4)跨域问题处理
  • SQLServer之创建显式事务
  • Vim Clutch | 面向脚踏板编程……
  • 聊聊flink的BlobWriter
  • 前端相关框架总和
  • 前端自动化解决方案
  • 深度学习入门:10门免费线上课程推荐
  • 数据可视化之 Sankey 桑基图的实现
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 自制字幕遮挡器
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​LeetCode解法汇总518. 零钱兑换 II
  • (0)Nginx 功能特性
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (一一四)第九章编程练习
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转载)hibernate缓存
  • ..回顾17,展望18
  • .NET 材料检测系统崩溃分析
  • .NET导入Excel数据
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • /boot 内存空间不够
  • ::什么意思
  • @SpringBootApplication 包含的三个注解及其含义
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [bzoj1038][ZJOI2008]瞭望塔
  • [C++提高编程](三):STL初识
  • [GN] 设计模式——面向对象设计原则概述