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()方法