目录

  • 1 依赖注入方式
    • 1.1 创建maven工程
      • pom.xml
    • 1.2 创建bean
      • Student.java
      • Teacher.java
    • 1.3 创建配置文件
      • applicationContext.xml
  • 2 构造器注入
    • TestSpring01.java
  • 3 属性注入
    • TestSpring02.java
  • 4 测试问题

1 依赖注入方式

1.1 创建maven工程

pom.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>org.example</groupId><artifactId>chapter07</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.0.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.0.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>5.0.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.8.RELEASE</version><scope>compile</scope></dependency></dependencies></project>

1.2 创建bean

Student.java

package com.qfedu.bean;public class Student {private int sid;private String name;private String age;private String course;//全参构造public Student(int sid, String name, String age, String course) {this.sid = sid;this.name = name;this.age = age;this.course = course;}//toString()方法@Overridepublic String toString() {return "Student{" +"sid=" + sid +", name='" + name + '\'' +", age='" + age + '\'' +", course='" + course + '\'' +'}';}
}

Teacher.java

package com.qfedu.bean;public class Teacher {private int tid;private String name;
//set方法public void setTid(int tid) {this.tid = tid;}public void setName(String name) {this.name = name;}//toString方法@Overridepublic String toString() {return "Teacher{" +"tid=" + tid +", name='" + name + '\'' +'}';}
}

1.3 创建配置文件

applicationContext.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 通过构造器注入成员变量的值 --><bean id="student" class="com.qfedu.bean.Student"><constructor-arg name="sid" value="1"/><constructor-arg name="name" value="ZhangSan"/><constructor-arg name="age" value="20"/><constructor-arg name="course" value="Java"/></bean><bean id="teacher" class="com.qfedu.bean.Teacher"><property name="tid" value="1"></property><property name="name" value="LiSi"></property></bean>
</beans>

2 构造器注入

TestSpring01.java

package com.qfedu.test;import com.qfedu.bean.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestSpring01 {public static void main(String[] args) throws Exception{ApplicationContext applicationContext = newClassPathXmlApplicationContext("applicationContext.xml");Student student = applicationContext.getBean("student", Student.class);//输出类对象的信息System.out.println(student);}
}

3 属性注入

TestSpring02.java

package com.qfedu.test;import com.qfedu.bean.Teacher;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestSpring02 {public static void main(String[] args) {ApplicationContext applicationContext = newClassPathXmlApplicationContext("applicationContext.xml");Teacher teacher = applicationContext.getBean("teacher", Teacher.class);
//        输出Teacher类对象的信息System.out.println(teacher);}
}

4 测试问题

Caused by: java.lang.ClassNotFoundException: org.springframework.core.metrics.ApplicationStartup

报错原因:
pom文件依赖版本的问题,Spring核心容器jar包和依赖jar包版本需要统一;这里的Spring版本为5.0.8.RELEASE,所有的Spring 相关的依赖都应该是这个版本。

参考链接: 解决:Caused by: java.lang.ClassNotFoundException: org.springframework.core.metrics.ApplicationStartup

Spring:Bean依赖注入方式相关推荐

  1. spring的依赖注入方式

    spring的依赖注入两种方式:Setter-based Dependency Injection(set方法去注入) 和 Constructor-based Dependency Injection ...

  2. Spring bean依赖注入、bean的装配及相关注解

    依赖注入 Spring主要提供以下两种方法用于依赖注入 基于属性Setter方法注入 基于构造方法注入 Setter方法注入 例子: public class Communication {priva ...

  3. spring中依赖注入方式总结

    文章来源于今日头条用户:分布式系统架构 一.注解注入 注解注入在Spring中是用的最多的一种方式,就是在java代码中使用注解的方式进行装配,在代码中加入@Resource或者@Autowired. ...

  4. Bean 依赖注入方式

    依赖注入:让调用类对某一接口实现类的依赖关系由第三方注入,以移除调用类对某一接口实现类的依赖. 接下来将详细的向大家介绍Spring容器支持的三种依赖注入的方式以及具体配置方法: •    属性注入方 ...

  5. Spring DI依赖注入方式

    1.构造器注入 2.Set方式注入[重点] 依赖注入:Set注入 依赖:bean对象的创建依赖于容器 注入:bean对象中的所有属性,由容器来注入. [环境搭建] Student package co ...

  6. Spring Bean 的注入方式

    DI 注入 一. 传统的注入方式 通过bean标签方式注入 通过包扫描的方式注入 二. 注解方式配置注入 @Configuration 与 @Bean 注解方式注入 @ComponentScan 包扫 ...

  7. Spring Bean 依赖注入

    动注入 手动注入就是在XML中定义Bean时,给Bean的某个属性指定了值. set方法注入 <bean name="orderService" class="co ...

  8. spring的依赖注入方式详解

    第一种:使用setter注入 直接使用bean元素的子元素property进行相关的设置 ①简单类型,直接使用value进行赋值. <bean id="somebean" c ...

  9. 05.bean依赖注入的三种方式

    05.bean依赖注入的三种方式 1.概述 依赖注入 DI(Dependency Injection):它是 Spring 框架核心 IOC 的具体实现. 在编写程序时,通过控制反转,把对象的创建交给 ...

最新文章

  1. windows下使用aspell开启emacs的单词拼写检查功能
  2. 【数据安全案例】交警计算机系统再遭***,交通违法记录随意删除
  3. 电脑达人教你怎么解决Win7系统盘渐渐变小的问题
  4. SQL Server 查看表定义的 2 种方法
  5. 【Linux sshfs】sshfs将远程目录挂载到本地目录
  6. Visual Studio 快捷键使用方法
  7. (王道考研计算机网络)第一章计算机网络体系结构-第二节体系结构与参考模型2:ISO/OSI模型
  8. 浏览器调试时控制台出现:Uncaught SyntaxError: Unexpected identifier
  9. CODE[VS]1012 最大公约数和最小公倍数问题
  10. Java 14 中令人期待的五大新特性!
  11. stm32波特率计算
  12. 弱监督学习总结(1)
  13. 《Nature》论文插图的Matlab复刻第4期—单组多色柱状图(Part2-82)
  14. 关于数据结构(c语言)中结构体声明的LNode, *LinkList
  15. 【系统】ThrottleStop软件使用教程入门级,游戏+工作两种解决cpu过热方案
  16. 本地Ping不通华为云服务问题解决
  17. 获取crumbIssuer
  18. 蓝牙设备删除失败_这软件能让你的蓝牙耳机,用上AirPods的功能
  19. 【Neo4j】SOLVED:java.lang.RuntimeException: Error starting Neo4j database server
  20. gitlab合并分支后需要提交吗_Gitlab合并了两个分支

热门文章

  1. Overleaf 中文设置
  2. 一花一世界,一树一菩提:编码压缩探索与实践
  3. 记录微信开发生成测试签名--signature,并使用微信jssdk屏蔽分享
  4. 如何做研究(How to research)
  5. 云原生|小心,你的Docker别被挖矿了
  6. 简单几步用Python实现人脸对比
  7. 微信小程序如何实现支付功能?看官方文档头疼(使用云函数的方式操作)
  8. 友元函数的练习 (12 分)
  9. IKAnalyzer
  10. pytorchOCR之CRNN+centerloss