上街郑州网站建设,国家企业信用信息网查询,怎么查看网站dns,怎么将网站设置为首页Spring5深入浅出篇:Spring工厂简单原理以及日志应用
Spring⼯⼚的底层实现原理(简易版) 还是通过分析第一个Spring程序来展开说说Spring工厂的简单原理 首先创建实体类
package com.baizhiedu.basic;import java.util.List;
import java.util.Map;
import java.util.Properti…Spring5深入浅出篇:Spring工厂简单原理以及日志应用
Spring⼯⼚的底层实现原理(简易版) 还是通过分析第一个Spring程序来展开说说Spring工厂的简单原理 首先创建实体类
package com.baizhiedu.basic;import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;// new Person() 通过工厂
public class Person {private Integer id;private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public Person() {}Overridepublic String toString() {return Person{ id id , name name \ };}
}然后在Spring配置文件中配置bean(applicationContext.xml) bean idperson classcom.baizhiedu.basic.Person/然后编写测试类 /*** 用于测试:用于测试Spring的第一个程序*/Testpublic void test3() {//1 获得Spring的工厂ApplicationContext ctx new ClassPathXmlApplicationContext(/applicationContext.xml);//2 通过工厂类 获得 对象Person person (Person) ctx.getBean(person);System.out.println(person person);}因为我们是通过测试类使用Spring工厂的,所以我们也从测试类开始进行分析. 首先通过ApplicationContext工厂读取配置文件applicationContex.xml获取bean标签的相关信息 如 id person ,class的值 com.baizhiedu.basic.Person通过反射来创建对象
Class? clazz Class.forName(class的值);
id的值 clazz.newInstance();反射创建对象底层也是会调用对象自己的构造方法
Class? clazz Class.forName(class的值);
id的值 clazz.newInstance();等效于(注意这里使用的是等效)
Account account new Account()对象创建的问题
问题未来在开发过程中是不是所有的对象都会交给Spring⼯⼚来创建呢回答理论上 是的但是有特例 实体对象(entity)是不会交给Spring创建它是由持久层框架进⾏创建。Spring5.x与⽇志框架的整合
Spring与⽇志框架进⾏整合⽇志框架就可以在控制台中输出Spring框架运⾏过程中的⼀些
重要的信息。
好处便于了解Spring框架的运⾏过程利于程序的调试Spring如何整合⽇志框架
默认Spring1.2.3早期都是于commons-logging.jarSpring5.x默认整合的⽇志框架 logback log4j2
Spring5.x整合log4j1. 引⼊log4j jar包2. 引⼊log4.properties配置⽂件引入依赖到pom.xml
dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.25/version
/dependencydependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version
/dependency新建log4j.properties配置文件配置日志输出
# resources # resources⽂件夹根⽬录下
### ### 配置根
log4j.rootLogger debug,console
### ### ⽇志输出到控制台显示
log4j.appender.consoleorg.apache.log4j.ConsoleAppender
log4j.appender.console.TargetSystem.out
log4j.appender.console.layoutorg.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern%d{yyyy-MM-dd
HH:mm:ss} %-5p %c{1}:%L - %m%n