首页 > 其他分享 >Spring2 - 入门案例

Spring2 - 入门案例

时间:2023-02-05 14:55:53浏览次数:49  
标签:xml 入门 创建对象 案例 bean user Spring2 public User

Spring 基本操作

导入依赖

在 pom.xml 中添加依赖

添加依赖:

<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>
    </dependency>
</dependencies>

查看依赖:

创建对象类

public class User {

    public void add(){
        System.out.println("add...");
    }
}

bean.xml 文件中配置对象

在resources目录创建一个 Spring 配置文件 beans.xml

<!-- 在配置文件中完成 User 对象创建 -->
<bean id="user" class="com.atguigu.spring6.User"></bean>
  • 创建对象是否执行无参构造?

    • 调用了无参构造
  • 创建对象的底层原理

    • 反射:

    • 加载 bean.xml 并解析文件获取内容

    • 获取文件中 bean 标签的属性值 id class(类的全路径)

    • 使用反射根据类全路径创建对象

    • Class clazz = Class.forName("class全路径");
      User user = (User)clazz.getDeclaredConstructor().newInstance();
      
  • 创建的对象存放在哪?

    • 存在在一个专门的 Map 集合中

    • Map<String,BeanDefinition> beanDefinitionMap
      
    • Kay:唯一标识 Value:类的描述信息

创建测试类进行测试

public class TestUser {

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

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

        //使用对象调用方法进行测试
        user.add();
    }
}

标签:xml,入门,创建对象,案例,bean,user,Spring2,public,User
From: https://www.cnblogs.com/Ashen-/p/17093353.html

相关文章

  • python 3.python入门
    1.编程语言介绍1.1分类机器语言#机器语言用二进制代码0和1描述的指令称为机器指令,由于计算机内部是基于二进制指令工作的,所以机器语言是直接控制计算......
  • 找了几个 Solon 的商业落地项目案例!
    Solon是啥?是一个高效的Java应用开发框架:更快、更小、更简单。(代码仓库:https://gitee.com/noear/solon)提倡:克制、简洁、开放、生态启动快5~10倍;qps高2~3倍;运......
  • drf入门规范、序列化器组件、视图组件、请求与响应
    DRF框架之入门规范​ 本篇文章会详细介绍web开发模式、API接口及其接口测试工具、restful规范、还有经常分不清又很重要的序列化与反序列化的部分,初级交接触APIView、Requ......
  • Golang入门第三天
    获取命令行参数init函数局部变量和全局变量变量的内存和变量的地址指针变量的使用new函数的使用值传递引用传递随机数的使用数组切片map结构体可见性规则p......
  • Pandas 人口密度案例分析
    fromturtleimportleftimportpandasaspd"""需求:1.导入文件,查看原始数据2.将人口数据和各州简称数据进行合并3.将合并的数据中重复的abbreviation列进行删除......
  • 【八大数据排序法】快速排序法的图形理解和案例实现 | C++
    第十八章快速排序法:::hljs-center目录第十八章快速排序法●前言●认识排序●一、快速排序法是什么?1.简要介绍2.具体情况3.算法分析●二、案例实现1.......
  • 简易的git命令行入门教程
    一、Git全局设置gitconfig--globaluser.name"用户名"gitconfig--globaluser.email"邮件地址@163.com"二、创建git仓库mkdir项目名cd项目名gitinitt......
  • C++ Primer 5th 阅读笔记:入门指南
    学习方法Thewaytolearnanewprogramminglanguageistowriteprograms.学习一门新编程语言的方式是编写程序。函数(Function)函数的四部分:返回类型;函数......
  • vuejs从入门到精通——watch侦听器——侦听数据源类型
    watch侦听器——侦听数据源类型https://cn.vuejs.org/guide/essentials/watchers.html#basic-examplewatch的第一个参数可以是不同形式的“数据源”:它可以是一个ref(包......
  • vuejs从入门到精通——watch侦听器
    watch侦听器https://cn.vuejs.org/guide/essentials/watchers.html虽然计算属性在大多数情况下更适合,但有时也需要一个自定义的侦听器。 这就是为什么vue通过watch......