Spring之Bean的依赖注入(基于XML)

简介: Spring之Bean的依赖注入(基于XML)

0x00 教程内容


  1. Spring配置文件的编写
  2. 测试

紧接着前一篇文章:JDBC实现MySQL数据库的增删改查,这篇文章补一下基础,以方便后面的学习。


0x01 Spring配置文件的编写


1. 引入依赖

JDBC依赖包后面还会用到,所以此处先引入:


<!-- Spring JDBC依赖包 -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>5.2.4.RELEASE</version>
</dependency>
<!-- Spring context依赖 -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.2.4.RELEASE</version>
</dependency>


2. 新建Spring的配置文件

IDEA里有内置的生成方式,如图:

微信图片_20220619184025.png


此处我取名为:spring.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">
</beans>


当然,自己新建一个文件,然后再加入相关的内容也可以,当然不排除有些同学的IDEA是没有那个自动生成的选项的,那怎么找呢?方法有以下如下:


1、把我上面的copy进去或者自己网上搜一份,但是悄悄告诉你,我上面的只适合本次教程哈。

2、直接在官网找,地址直达:https://docs.spring.io/spring-framework/docs/5.2.4.RELEASE/spring-framework-reference/core.html#beans-factory-metadata


微信图片_20220619184048.png


拉下一点点就可以看到了:


微信图片_20220619184056.png


然后在配置文件里面加入需要注入的Bean,我这里是将Student注入进入,并且加入了几个属性值:

<bean id="student" class="com.shaonaiyi.domain.Student">
    <property name="id" value="1"/>
    <property name="name" value="shaonaiyi"/>
    <property name="age" value="18"/>
</bean>


image.png


此过程就相当于 IoC 容器新建了一个Student对象,名字为student,并且注入了id、name、age这三个属性的值,那竟然是新建了一个对象,并且设置了属性值,那应该可以将其打印出来,下一步我们继续操作。


0x02 测试结果


1. 新建一个测试类

image.png


编写代码如下:

package com.shaonaiyi.domain;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 * @Auther: shaonaiyi@163.com
 * @Date: 2021/1/16 11:45
 * @Description: 测试Bean依赖注入
 */
public class StudentTest {
    private ApplicationContext applicationContext = null;
    private Student student = null;
    @Before
    public void before() {
        applicationContext = new ClassPathXmlApplicationContext("spring.xml");
    }
    @After
    public void after() {
        applicationContext = null;
    }
    @Test
    public void testStudent() {
        student = (Student) applicationContext.getBean("student");
        System.out.println("---------------------");
        System.out.println("学生id:" + student.getId());
        System.out.println("学生名称:" + student.getName());
        System.out.println("学生年龄:" + student.getAge());
    }
}


2. 运行结果

image.png


至此,我们就实现了从IoC容器里面获取对象了。


0xFF 总结


  1. 本文章为Java的Spring基础知识,因为写博客需要,所以顺便写了出来。
  2. 下一篇教程,我们会通过JDBCTemplate方式实现对数据库的访问,链接跳转:使用JdbcTemplate对MySQL数据库进行增删改查
相关文章
|
22天前
|
XML Java 数据格式
【SpringFramework】Spring IoC-基于XML的实现
本文主要讲解SpringFramework中IoC和DI相关概念,及基于XML的实现方式。
108 69
|
27天前
|
XML Java 数据格式
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
|
27天前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
25天前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
|
25天前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
|
1月前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
65 6
|
1月前
|
XML Java 数据格式
🌱 深入Spring的心脏:Bean配置的艺术与实践 🌟
本文深入探讨了Spring框架中Bean配置的奥秘,从基本概念到XML配置文件的使用,再到静态工厂方式实例化Bean的详细步骤,通过实际代码示例帮助读者更好地理解和应用Spring的Bean配置。希望对你的Spring开发之旅有所助益。
114 3
|
1月前
|
Java 数据库 数据安全/隐私保护
轻松掌握Spring依赖注入:打造你的登录验证系统
本文以轻松活泼的风格,带领读者走进Spring框架中的依赖注入和登录验证的世界。通过详细的步骤和代码示例,我们从DAO层的创建到Service层的实现,再到Spring配置文件的编写,最后通过测试类验证功能,一步步构建了一个简单的登录验证系统。文章不仅提供了实用的技术指导,还以口语化和生动的语言,让学习变得不再枯燥。
46 2
|
1月前
|
安全 Java 开发者
Spring容器中的bean是线程安全的吗?
Spring容器中的bean默认为单例模式,多线程环境下若操作共享成员变量,易引发线程安全问题。Spring未对单例bean做线程安全处理,需开发者自行解决。通常,Spring bean(如Controller、Service、Dao)无状态变化,故多为线程安全。若涉及线程安全问题,可通过编码或设置bean作用域为prototype解决。
41 1
|
4月前
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
315 18