03使用Spring基于XML的方式注册第一个组件

基于XML的方式注册第一个组件

开发步骤

第一步: 创建Maven工程配置生成的pom.xml文件, 添加spring context基础依赖和junit依赖(注意根据Spring官方文档描述,Spring6需要JDK版本17)

  • 当添加Spring的基础依赖spring context之后,Maven会自动关联并引入其他依赖spring aop, spring beans, spring core,spring jcl,spring expression
xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.powernode</groupId>
    <artifactId>spring6-002-first</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--学习Spring可以指定打包方式为jar即项目可以是普通的java项目-->
    <packaging>jar</packaging>

    <!--配置多个仓库-->
    <repositories>
        <!--spring里程碑版本的仓库,注意6.0.2及以上版本就是正式版本,使用时就不用再配置仓库了-->
        <repository>
            <id>repository.spring.milestone</id>
            <name>Spring Milestone Repository</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <dependencies>
        <!--spring context依赖,如果你想使用spring的jdbc或者说其他的tx,那么还需要再次添加依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.9</version>
            <!--<version>6.0.0-M2</version>-->
        </dependency>
        <!--junit依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
        <!--log4j2的依赖-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.19.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
            <version>2.19.0</version>
        </dependency>
    </dependencies>
    <!--配置Project工程结构的JDK版本才会有以下标签-->
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>
</project>

第二步: 在src/mian/java类路径下的bean包下定义User类

java 复制代码
public class User {
}

第三步: 在src/mian/resources类路径下编写spring的配置文件beans.xml,这个配置文件的名字可以随意(IDEA工具自带的有Spring配置文件模板)

  • bean标签的id属性: 代表对象的唯一标识,可以看做一个人的身份证号
  • bean标签的class属性: 用来指定要创建的java对象的类名,这个类名必须是全限定类名即带包名
xml 复制代码
<?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">
    <!--配置bean,这样spring才可以帮助我们管理这个对象-->
    <bean id="userBean" class="com.powernode.spring6.bean.User"/>
    <!--这里也可以配置其他的bena,一个bena就代表一个对象-->	
</beans>

第四步: 编写测试程序

  • 第一步: 获取Spring容器对象,解析beans.xml文件创建所有的bean对象并放到容器中
  • 第二步: 根据bean的id从Spring容器中获取这个对象
java 复制代码
public class FisrtSpringTest{
    @Test
    public void testFistSpringCode(){
        // ClassPathXmlApplicationContext是专门从类路径当中加载spring配置文件的一个Spring上下文对象
        // 启动了Spring容器,解析beans.xml文件,并且实例化所有的bean对象,放到spring容器当中
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
        // 根据bean的id从Spring容器中获取这个对象
        Object userBean = applicationContext.getBean("userBean");
        System.out.println(userBean);
    }
}
相关推荐
周末也要写八哥1 小时前
多进程和多线程的特点和区别
java·开发语言·jvm
惜茶2 小时前
vue+SpringBoot(前后端交互)
java·vue.js·spring boot
杰克尼2 小时前
springCloud_day07(MQ高级)
java·spring·spring cloud
NHuan^_^4 小时前
SpringBoot3 整合 SpringAI 实现ai助手(记忆)
java·人工智能·spring boot
Mr_Xuhhh4 小时前
从ArrayList到LinkedList:理解链表,掌握Java集合的另一种选择
java·数据结构·链表
错把套路当深情4 小时前
Java 全方向开发技术栈指南
java·开发语言
han_hanker4 小时前
springboot 一个请求的顺序解释
java·spring boot·后端
杰克尼4 小时前
SpringCloud_day05
后端·spring·spring cloud
MaCa .BaKa4 小时前
44-校园二手交易系统(小程序)
java·spring boot·mysql·小程序·maven·intellij-idea·mybatis
希望永不加班5 小时前
SpringBoot 静态资源访问(图片/JS/CSS)配置详解
java·javascript·css·spring boot·后端