网站logo用什么来做,百度网站抓取时间查询,贵阳软件开发公司排名,新吴网站建设https://www.yuque.com/dujubin/ltckqu/kipzgd##xff0c;注意的是#xff0c;现在#xff08;202401#xff09;SpringFramework从release搬到了snapshot下#xff0c;在这下面找到6.0.2下载.
下载后解压到文件夹#xff0c;整个框架包含非常多jar包。
然后就可以在p…https://www.yuque.com/dujubin/ltckqu/kipzgd#注意的是现在202401SpringFramework从release搬到了snapshot下在这下面找到6.0.2下载.
下载后解压到文件夹整个框架包含非常多jar包。
然后就可以在pom文件中写入依赖声明需要的用的jar包。
如果只需要最基本IoC、DI支持则只需要context包而context包依赖于其他包如果采用maven只要导入context一条依赖即可。 新建一个modulespring6-002选好SDK版本maven构建。
老规矩pom文件入手 1.打包方式选择jar学习spring不必是web项目故jar打包即可 2.添加6.0的spring-context依赖,添加后检查右侧maven目录,会发现自动导入了aop,core,bean等下级依赖.
packagingjar/packaging!-- https://mvnrepository.com/artifact/org.springframework/spring-context --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion6.0.2/version/dependencyS
引入单元测试junit依赖…每次引入的依赖.如果之前已经引用过远程仓库,则已经下载到了本地仓库,此时自己打就会有提示,否则就要从远程仓库查询 dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope/dependency3.与mybatis一致,spring也需要在类的根目录路径下(resources)写一个配置文件,创建方式如下.起名为spring.xml4.编写代码,结构如下图 src\main\java\com\sunsplanter\spring6\dao\UserDaoImplForMySQL
package com.sunsplanter.spring6.dao;
//快速测试第一个程序,就不写接口了
public class UserDaoImplForMySQL {
}src\main\resources\spring.xml
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd!-- 每个bean标签管理一个对象id是唯一的,与mybatis的配置文件非常相似class属性声明要管理哪个类中的对象,路径必须完整包含包名--
!-- 注意,bean标签不是成对的bean/bean--bean iduserDaoBean classcom.sunsplanter.spring6.dao.UserDaoImplForMySQL/
/beanssrc/test/java/com/sunsplanter/spring6/test/FirstSpringTest.java
package com.sunsplanter.spring6.test;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class FirstSpringTest {Testpublic void testFirstTest(){//1.与mybatis思想也很相似,写好了容器的配置规格和管理对象(spring.xml),下一步就是想办法制造(获取)出一个容器,用这个容器创建和管理对象//ClassPathXmlApplicationContext的参数为spring配置文件的地址//applicationContext就是一个spring容器的对象实例,ApplicationContext是一个接口,其有很多实现类,ClassPathXmlApplicationContext就是其中之一
// ClassPathXmlApplicationContext专门从类的跟路径中加载spring配置文件,因此配置文件只要放在resources下就可以不写全路径
// 默认情况下Spring会通过反射机制,调用类的无参构造方法实例化对象,执行完new读取了配置文件后,对象就已经创建完成ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring.xml);// 2.上句代码执行完成后对象已经创建存在了,getBean是根据bean的id,从spring容器获取要控制的对象Object userBean applicationContext.getBean(userDaoBean);System.out.println(userBean);}
}执行test方法,可以正确输出spring帮忙创建并管理的对象(bean).
几个问题 1.Spring创建好的对象如何存储? 2.Spring配置文件的名字是任意的. 3.Spring配置文件的数量的任意的,只要名字不重复即可,最终都可通过
ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring.xml);选择加载的配置文件.
4.配置文件中的类并不一定要自定义类,即使是JDK中的类也可以,只要确保有无参构造方法即可.
测试3和4 resources下新建一个Spring配置文件,命名为Date.xml bean iddateBean classjava.util.Date/src/test/java/com/sunsplanter/spring6/test/FirstSpringTest.java
package com.sunsplanter.spring6.test;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class FirstSpringTest {Testpublic void testFirstTest() {ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring.xml);Object dateBean applicationContext.getBean(dateBean);System.out.println(dateBean);}
}此时因为是直接调用Spring创建一个JDK自身的类,因此在src/main/java/com/sunsplanter/spring6目录下,无需声明一个实体类.直接运testFirstTest即可.可以得到输出: **5.一个现实以及很重要的问题:**对于上例中的,假如增加了一个方法(事实上实现类肯定有各种各样的方法)
src\main\java\com\sunsplanter\spring6\dao\UserDaoImplForMySQL
package com.sunsplanter.spring6.dao;
//快速测试第一个程序,就不写接口了
public class UserDaoImplForMySQL {public void insert(){System.out.println(1);}
}再看:原本有一个类(不写接口,简单程序),且原本要在上层类中new出下层类的实例
//这是表现层中实现类中的代码,可以看出,表现层调用了控制层的类去new出对象,返回了具体类型的对象,既 人 张三 new 人
private Userservice userService new UserServiceImp();
//既然返回的是举行类型的对象,就可以调用该抽象类中定义的方法
userservice.insert();但为了OCP,IoC,DIP等原则,new出实例对象全部交给了Spring容器,然而,以上章为例
//然而若用了Spring,通过获取配置文件制造一个容器(applicationContext)-通过容器调用getBean获取一个Object类型的UserDaoImplForMySQL对象
//该对象名为userBean.此时,由于该对象是Object类型的,它无法自己对应抽象类的方法ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring.xml);Object userBean applicationContext.getBean(userDaoBean);userBean.insert();//错误//将getBean方法多设置一个参数,指明返回具体类型的对象UserDaoImplForMySQL userDaoImplForMySQL applicationContext.getBean(userDaoBean, UserDaoImplForMySQL.class);userDaoImplForMySQL.insert();//执行成功启用Log4j2日志(Spring集成了Log4j2) 第一步引入Log4j2的依赖
!--log4j2的依赖--
dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion2.19.0/version
/dependency
dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-slf4j2-impl/artifactIdversion2.19.0/version
/dependency第二步在类的根路径下提供log4j2.xml配置文件文件名固定为log4j2.xml文件必须放到类根路径下。
?xml version1.0 encodingUTF-8?configurationloggers!--level指定日志级别从低到高的优先级ALL TRACE DEBUG INFO WARN ERROR FATAL OFF--root levelDEBUGappender-ref refspring6log//root/loggersappenders!--输出日志信息到控制台--console namespring6log targetSYSTEM_OUT!--控制日志输出的格式--PatternLayout pattern%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-3level %logger{1024} - %msg%n//console/appenders/configuration第三步使用日志框架
src/test/java/com/sunsplanter/spring6/test/FirstSpringTest.javaLogger logger LoggerFactory.getLogger(FirstSpringTest.class);logger.info(我是一条日志消息);logger.debug(de);logger.error(er);注意的是,JDK本身提供了Logger类,使用时一定要先添加依赖-更新maven-手打选择org.slf4j的定义的Logger,直接复制会爆红.