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

邵奈一来了 2021-07-20 04:21:05
spring Spring教程


大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。
1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员…
2、这几年,我整理了很多IT技术相关的教程给大家,爱生活、爱分享。
3、如果您觉得文章有用,请收藏,转发,评论,并关注我,谢谢!
博客导航跳转(请收藏):邵奈一的技术博客导航
| 公众号 | 微信 | 微博 | CSDN | 简书 |


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>

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
2. 新建Spring的配置文件

IDEA里有内置的生成方式,如图:
在这里插入图片描述
此处我取名为: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>

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

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

1、把我上面的copy进去或者自己网上搜一份,但是悄悄告诉你,我上面的只适合本次教程哈。
2、直接在官网找,地址直达:https://docs.spring.io/spring-framework/docs/5.2.4.RELEASE/spring-framework-reference/core.html#beans-factory-metadata
在这里插入图片描述
拉下一点点就可以看到了:
在这里插入图片描述
然后在配置文件里面加入需要注入的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>

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

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

0x02 测试结果
1. 新建一个测试类

在这里插入图片描述
编写代码如下:

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());
}
}

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
2. 运行结果

在这里插入图片描述
至此,我们就实现了从IoC容器里面获取对象了。

0xFF 总结
  1. 本文章为Java的Spring基础知识,因为写博客需要,所以顺便写了出来。
  2. 下一篇教程,我们会通过JDBCTemplate方式实现对数据库的访问,请留意本博客待补充链接

邵奈一 原创不易,如转载请标明出处,教育是一生的事业。


版权声明
本文为[邵奈一来了]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_12564104/2894642

  1. Netty源码解析-概述篇
  2. Netty源码解析-概述篇
  3. Netty源码解析1-Buffer
  4. Netty源码解析1-Buffer
  5. Netty源码解析2-Reactor
  6. Netty源码解析2-Reactor
  7. Netty源码解析3-Pipeline
  8. Netty源码解析3-Pipeline
  9. Netty源码解析4-Handler综述
  10. Netty源码解析4-Handler综述
  11. Netty源码解析5-ChannelHandler
  12. Netty源码解析5-ChannelHandler
  13. Netty源码解析6-ChannelHandler实例之LoggingHandler
  14. Netty源码解析6-ChannelHandler实例之LoggingHandler
  15. Netty源码解析7-ChannelHandler实例之TimeoutHandler
  16. Netty源码解析7-ChannelHandler实例之TimeoutHandler
  17. Netty源码解析8-ChannelHandler实例之CodecHandler
  18. Netty源码解析8-ChannelHandler实例之CodecHandler
  19. Netty源码解析9-ChannelHandler实例之MessageToByteEncoder
  20. Netty源码解析9-ChannelHandler实例之MessageToByteEncoder
  21. 大数据面试题之Hbase系列
  22. 你可能需要的Kafka面试题与答案整理
  23. 你可能需要的Kafka面试题与答案整理
  24. 后起之秀Pulsar VS. 传统强者Kafka?谁更强
  25. 后起之秀Pulsar VS. 传统强者Kafka?谁更强
  26. 【大数据哔哔集20210123】别问,问就是Kafka最可靠
  27. 【大数据哔哔集20210123】别问,问就是Kafka最可靠
  28. 【大数据哔哔集20210124】有人问我Kafka Leader选举?我真没慌
  29. 【大数据哔哔集20210124】有人问我Kafka Leader选举?我真没慌
  30. 【大数据哔哔集20210117】Kafka 的高可靠性是怎么实现的
  31. 【大数据哔哔集20210117】Kafka 的高可靠性是怎么实现的
  32. Kafka Connect | 无缝结合Kafka构建高效ETL方案
  33. Kafka面试题总结(一)
  34. Kafka面试题总结(一)
  35. Kafka面试题整理(二)
  36. Kafka面试题整理(二)
  37. 基于Kafka Flink Redis的电商大屏实时计算案例
  38. 基于Kafka Flink Redis的电商大屏实时计算案例
  39. Google布隆过滤器与Redis布隆过滤器详解
  40. Google布隆过滤器与Redis布隆过滤器详解
  41. 【Java Web前端开发】前端框架 bootstrap+jquery+angularjs探索
  42. 关于Redis的几件小事 | 高并发和高可用
  43. 关于Redis的几件小事 | 高并发和高可用
  44. 关于redis的几件小事(一)redis的使用目的与问题
  45. 关于redis的几件小事(一)redis的使用目的与问题
  46. 阿里云Redis技术架构演进
  47. 阿里云Redis技术架构演进
  48. 阿里云Redis技术架构演进
  49. Flink实战(109):connector(十八)hdfs 读写(三)StreamingFileSink相关特性及代码实战
  50. Flink实战(110):flink-sql使用(十八)connector(十九)Flink 与 hive 结合使用(七) Flink Hive Connector 使用
  51. Flink实战(110):flink-sql使用(十八)connector(十九)Flink 与 hive 结合使用(七) Flink Hive Connector 使用
  52. Flink实战(111):flink-sql使用(十九)Flink 与 hive 结合使用(八)Hive Streaming 实战解析
  53. Flink实战(111):flink-sql使用(十九)Flink 与 hive 结合使用(八)Hive Streaming 实战解析
  54. Docker常用命令,这些都要会!
  55. 鸟哥的Linux私房菜学习之第九章笔记
  56. Java NIO之Channel(通道)
  57. Java NIO之拥抱Path和Files
  58. Redis changed its open source license, and many projects were no longer open source
  59. JDK 11 has entered the candidate release stage, and the official version is planned to be released on September 25
  60. [* *] the latest version of windows 10 hides Linux?