中国建设银行官方网站,开发公司解除前期物业服务合同,那种转转假网站怎么做的,深圳鼎诚网站建设文章目录 环境要求构建模块引入依赖初试Bean创建测试类测试对象实现的原理 环境要求 JDK#xff1a;Java17#xff08;Spring6要求JDK最低版本是Java17#xff09; Maven#xff1a;3.6 Spring#xff1a;6.0.2
构建模块
首先建立的spring的项目#xff08;projectJava17Spring6要求JDK最低版本是Java17 Maven3.6 Spring6.0.2
构建模块
首先建立的spring的项目project项目下面有一些子模块module
(1)在idea中依次单击 File - New - Project - New Project 删除src目录 (2)构建子模块pro1 点击 Create 完成
引入依赖
这个依赖加到父工程的spring6下面的pom.xml ,然后后面的子工程就可以不在导入这个包了
dependencies!--spring context依赖--!--当你引入Spring Context依赖之后表示将Spring的基础依赖引入了--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion6.0.2/version/dependency!--junit5测试--dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.3.1/version/dependency
/dependencies初试Bean
1.创建java类HelloWorld
package com.test;/*** ClassName: HelloWorld* Package: com.test* Description:** Author Thmiao* Create 2023/10/11 19:33* Version 1.0*/
public class HelloWorld {public HelloWorld() {System.out.println(这个是一个无参的构造方法!!);}public void sayHello(){System.out.println(helloworld);}
}2.创建配置文件 依赖导入了之后写配置文件
?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!--配置HelloWorld所对应的bean即将HelloWorld的对象交给Spring的IOC容器管理通过bean标签配置IOC容器所管理的bean属性id设置bean的唯一标识class设置bean所对应类型的全类名--bean idhelloWorld classcom.test.HelloWorld/bean
/beans创建测试类测试
在test 下面建立测试类
import com.test.HelloWorld;import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class HelloTest {Testvoid test(){ApplicationContext ac new ClassPathXmlApplicationContext(beans.xml);HelloWorld HI (HelloWorld) ac.getBean(helloWorld);HI.sayHello();}Testvoid testRefection() throws Exception {Class clazz Class.forName(com.test.HelloWorld);// 这个也可以获取到helloWord的类对象,只是这个方法过时了
// HelloWorld o (HelloWorld)clazz.newInstance();
// o.sayHello();HelloWorld hello (HelloWorld) clazz.getDeclaredConstructor().newInstance();hello.sayHello();}private Logger logger LoggerFactory.getLogger(HelloTest.class);
这里写了两个测试方法第一个test 方法是试的spring下得ioc 第二个testRefection 是为了自己写反射来实现获取bean 实例对象对象
运行结果第一个方法的
注意创建对象时确实调用了无参数构造方法。
对象实现的原理
ean对象最终存储在spring容器中在spring源码底层就是一个map集合存储bean的map在DefaultListableBeanFactory类中
private final MapString, BeanDefinition beanDefinitionMap new ConcurrentHashMap(256);Spring容器加载到Bean类时 , 会把这个类的描述信息, 以包名加类名的方式存到beanDefinitionMap 中, MapString,BeanDefinition , 其中 String是Key , 默认是类名首字母小写 , BeanDefinition , 存的是类的定义(描述信息) , 我们通常叫BeanDefinition接口为 : bean的定义对象。