Spring 一文带你掌握IOC技术,42岁程序员面试

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
img

正文

👑 博主简介
   🥇 Java领域新星创作者
   🥇 阿里云开发者社区专家博主、星级博主、技术博主
🤝 交流社区BoBooY(优质编程学习笔记社区)

文章目录

IOC 控制反转

1、概念

IOC(Inversion of Control):控制反转

  • 什么是控制反转呢?

使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。

  • Spring和IOC之间的关系是什么呢?

Spring技术对IOC思想进行了实现,Spring提供了一个容器,称为IOC容器,用来充当IOC思想中的"外部",IOC思想中的"外部"指的就是Spring的IOC容器

  • IOC容器的作用以及内部存放的是什么?

IOC容器负责对象的创建、初始化等一系列工作,其中包含了数据层和业务层的类对象,被创建或被管理的对象在IOC容器中统称为Bean,IOC容器中放的就是一个个的Bean对象

2、分析

  • Spring是使用容器来管理bean对象的,那么管什么?

主要管理项目中所使用到的类对象,比如(Service和Dao)

  • 如何将被管理的对象告知IOC容器?

使用配置文件

  • 被管理的对象交给IOC容器,要想从容器中获取对象,就先得思考如何获取到IOC容器?

Spring框架提供相应的接口

  • IOC容器得到后,如何从容器中获取bean?

调用Spring框架提供对应接口中的方法

  • 使用Spring导入哪些坐标?

用别人的东西,就需要在pom.xml添加对应的依赖

3、IOC代码实现

3.1、创建Maven项目

在这里插入图片描述

3.2、添加Spring的依赖jar包
  • pom.xml
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

3.3、创建Dao层和Service层的接口与实现类
  • BookDao
public interface BookDao {
    public void save();
}

  • BookDaoImpl
public class BookDaoImpl implements BookDao {
    public void save() {
        System.out.println("book dao save ...");
    }
}

  • BookService
public interface BookService {
    public void save();
}

  • BookServiceImpl
public class BookServiceImpl implements BookService {
    private BookDao bookDao = new BookDaoImpl();
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

3.4、添加spring配置文件

resources下添加spring配置文件applicationContext.xml,并配置Bean

  • bean标签 标示配置bean
  • id属性 标示给bean起名字
  • class属性 表示给bean定义类型

在这里插入图片描述

配置应用程序上下文

在这里插入图片描述

  • 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/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

        <bean id="bookDao" class="com.bby.dao.BookDaoImpl"/>
        <bean id="bookService" class="com.bby.service.BookServiceImpl"/>
</beans>

注意:bean定义时id属性在同一个上下文中(配置文件)不能重复

3.5、获取IOC容器

使用Spring提供的接口完成IOC容器的创建,创建App类,编写main方法

public class App {
    public static void main(String[] args) {
        //获取IOC容器
		 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
       
    }
}

3.6、从容器中获取对象进行方法调用
public class App {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        BookDao bookDao = (BookDao)applicationContext.getBean("bookDao");
        bookDao.save();


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
![img](https://img-blog.csdnimg.cn/img_convert/fa4e890faee14979fdfef317fff0abbd.png)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

        bookDao.save();


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
[外链图片转存中...(img-0q2RR2t1-1713324833570)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值