Spring快速入门

  1. 环境要求
  2. 构建模块
  3. 程序开发
    1. 引入依赖
    2. 创建java类
    3. 创建配置文件
    4. 创建测试类测试
    5. 程序运行过程

环境要求

  • JDK:Java17+(Spring6要求JDK最低版本是Java17)
  • Maven:3.6+
  • Spring:6.0.2

构建模块

构建父模块spring6:在idea中,依次单击 File -> New -> Project -> New Project

删掉src,用spring6作为父工程

创建模块

模块创建成功:

程序开发

引入依赖

<dependencies>
    <!--spring context依赖-->
    <!--当你引入Spring Context依赖之后,表示将Spring的基础依赖引入了-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!--junit5测试-->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.3.1</version>
        <!--   把test注释掉,这样 在main里面也可以用-->
        <!--   <scope>test</scope>-->
    </dependency>
</dependencies>

创建java类

package com.lin;

public class User {
    public User(){
        System.out.println("0:无参构造器....");
    }
    public void add(){
        System.out.println("add...");
    }
}

创建配置文件

在resources目录创建一个 Spring 配置文件 beans.xml(配置文件名称可随意命名,如:springs.xm)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--
    配置User所对应的bean,即将User的对象交给Spring的IOC容器管理
    通过bean标签配置IOC容器所管理的bean
    属性:
        id:设置bean的唯一标识
        class:设置bean所对应类型的全类名
    -->
    <bean id="user" class="com.lin.User"></bean>

</beans>

创建测试类测试

package com.lin;
public class TestUser {

    //创建Logger对象
    //private Logger logger = LoggerFactory.getLogger(TestUser.class);

    @Test
    public void testUserObject() {
        //加载spring配置文件,对象创建
        ApplicationContext context =
                new ClassPathXmlApplicationContext("beans.xml");

        //获取创建的对象
        User user = (User)context.getBean("user");
        System.out.println("1:"+user);

        //使用对象调用方法进行测试
        System.out.print("2:");
        user.add();
    }
}

结果

0:无参构造器....
1:com.lin.User@5ddea849
2:add...

程序运行过程

  1. spring会把resource目录下的文件变成字节码文件,放在com目录下

  2. ApplicationContext context =new ClassPathXmlApplicationContext("beans.xml");:会到com目录下加载并解析beans.xml

  3. 获取xml文件里面class属性和id属性

  4. 接着ClassPathXmlApplicationContext会使用反射,根据全类名(class设置的值),创建对象,如:

    //获取类Class对象
    Class clazz = Class.forName("com.lin.User");
    //调用方法创建对象
    //Object o = clazz.newInstance();
    User user = (User)clazz.getDeclaredConstructor().newInstance();
    
  5. 创建好对象之后,会把对象放在DefaultListableBeanFactorybeanDefinitionMap。map的key就是beans.xml配置的id=user

    public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory implements ConfigurableListableBeanFactory, BeanDefinitionRegistry, Serializable {
        private final Map<String, BeanDefinition> beanDefinitionMap;
    }
    
  6. context.getBean("user"):根据id获取对象


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1909773034@qq.com

×

喜欢就点赞,疼爱就打赏