目录

  • 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. /proc/meminfo详解 = /nmon analysis --MEM
  2. php定界符EOF讲解
  3. |9 其他(linux特定的), 用来存放内核例行程序的文档.,Linux下的帮助命令
  4. T.38 and the future
  5. glassfish_具有GlassFish和一致性的高性能JPA –第3部分
  6. cfar恒虚警matlab实现,一种用于距离副瓣抑制的自适应恒虚警方法与流程
  7. 那是财务自由的声音!寒武纪上市造就一批85后亿万富翁
  8. 修改wifi密码后连接不上服务器,WiFi修改密码后,手机电脑连接不上
  9. 经验:多表复制(结构、数据)
  10. C++ 运算符重载四(自定义数组类)
  11. C#调用Web Service时的身份验证 (转)
  12. dblink连接远程mysql_MySQL中使用federated 实现dblink 远程表访问
  13. 各种OS的TCP Init RTO
  14. Maya: 菜单 曲面 双轨成形双轨成形3+工具
  15. Qt5.9生成一个Adroid的apk应用实例
  16. Matlab 数字图像处理 学习笔记(一)
  17. 高颜值游戏专属蓝牙耳机推荐,2020五款商城高人气蓝牙耳机
  18. Matlab实现蒙特卡罗方法(随机模拟法)
  19. Mysql:Got error 28 from storage engine
  20. 路由器与服务器延迟过高,路由器延迟高什么原因(图文)

热门文章

  1. 阿特斯闯关科创板:掉队的光伏巨头,还能靠“IPO”突围吗?
  2. [计算机网络]十三、配置iptables防火墙(SNAT和DNAT的策略及应用、使用layer7应用层过滤功能)
  3. TextView显示文字上下有空白
  4. 罗辑思维CEO脱不花:工作和成长,这是我的121条具体建议
  5. JAVA期末考试工程部分_如何看待山东科技大学2019年java期末考试?
  6. [模型学习]Attention机制及其原理推导
  7. 博客系统前台页面设计
  8. 回收租赁系统app源码,物品回收+物品租赁+二手交易三大场景
  9. 有没有好的python教程推荐_Python Pandas教程推荐,全网最佳,没有之一
  10. 坚持就是胜利—兄弟连IT教育