Spring依赖查找与依赖注入【入门】

140 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第19天,点击查看活动详情

站在面试角度回答什么是SpringFramework

SpringFramework是一个开源、松耦合(IOC和AOP带来的弱依赖)、分层(MVC三层架构)、可配置(为SpringBoot垫底)的一站式Java开发框架,以IOC和AOP为核心,可以快速构建出企业级Java用,并可以根据应用开发的组件需要来整合对应的技术。

spring框架下面包含bean、core、context、expression、aop等内容。

初步了解完spring框架之后,进入本章主题依赖查找、依赖注入。

IOC-DL依赖查找

对于依赖查找要做的环境准备:1.需要在pom中引入spring-context依赖;2.新建spring的xml配置文件(quickstartby-name.xml);3.创建启动类。

依赖查找这块主要想说的是:在spring的xml配置文件里面写好bean放入spring容器中,如 <bean id="person" class="com.linkedbear.spring.basic_dl.a_quickstart_byname.bean.Person"></bean> ,我们用getBean("person")来获取,那这个就是最简单的依赖查找。

关于底层,其实是用IO读取xml配置,类似于上个章节(IOC的由来)讲的用Properties+反射读取外部配置,然后用静态工厂创建这个对象。

IOC-DI依赖注入

在依赖查找中,创建的bean是不带属性的,那要是需要创建带属性的bean该怎么做?当然是把属性值注入进去,这个就是IOC的另一种实现:依赖注入。 举个例子,我们的person类和cat类有两个成员变量并都有各自的get、set方法。如下:

// cat和person中get和set省略
public class Cat {
    private String name;
    private Person master;
}
 
public class Person {
    private String name;
    private Integer age;
}

那创建有属性的bean就可以如下做法:property标签用于配置bean的属性,name对应属性名,value对应属性值,ref作用的是需要关联的bean。

<bean id="person" class="com.lyz.basic_di.a_quickstart_set.bean.Person">
    <property name="name" value="test-person-byset"></property>
    <property name="age" value="18"></property>
</bean>
<bean id="cat" class="com.lyz.basic_di.a_quickstart_set.bean.Cat">
    <property name="name" value="test-cat"></property>
    <property name="master" ref="person"></property>
</bean>

以上就是本节的主要内容了,具体要了解两者的配置步骤的,博主的这篇文章讲的很细:juejin.cn/post/710119…