SpringBoot学习笔记——第二节,依赖注入与控制反转

本文详细介绍了Spring框架的依赖注入(DI)和控制反转(IoC)概念,通过实例展示了如何使用Java注解配置实现Bean的创建和注入。文章解释了@Component、@Autowired等注解的作用,以及如何通过配置类实现更灵活的Bean初始化。最后,文章讨论了Spring中的单例模式,并验证了依赖注入和控制反转的实现。
摘要由CSDN通过智能技术生成

 Spring框架有四大原则:

       ·使用POJO进行轻量级与最小侵入式开发

       ·通过依赖注入和基于接口编程实现松耦合

       ·通过AOP和默认习惯进行声明式编程

       ·通过AOP和模板减少模式化代码

 

    那么什么是依赖注入与控制反转呢?我们先通过一个例子来理解一下

    首先我们有一个类叫做Student,里面有两个成员变量分别是id和name,并提供给他们get和set方法

public class Student {
	private int id;                                                                    //学生ID
	private String name;                                                               //学生姓名
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}

然后我们有另外一个类叫做StudentManager

public class StudentManager {
	
	Student student;                                                    //StudentManager管理了一个Student的对象
	
	public void setStudent(Student student) {                           //提供SetStudent方法添加依赖
		this.student = student;
	}
	
	public void show() {
		System.out.println(student.getId());
		System.out.println(student.getName());
	}
}

    这个StudentManager的类有个成员是Student的一个对象,然后它的Show方法能够打印这个student的 id 以及 name,并提供了setStudent方法初始化Student对象。我们可以说,StudentManager是依赖于Student的。

    但是一个问题就出现了,StudentManager与Student之间的耦合非常紧密,假如我们还没有来的及对StudentManager的student绑定对象,却调用了show方法的话,那么程序将会抛出空指针异常。

    这是我们开发过程中最不希望看到的结果,所以Spring提供了一套叫做控制反转与依赖注入这套机制,目的就是为了解耦。

    在Spring中,你不需要自己创建对象,你只需要告诉Spring,哪些类我需要创建出对象,然后在启动项目的时候Spring就会自动帮你创建出该对象,并且只存在一个类的实例。这个类的实例在Spring中被称为Bean。而这种模式,我们称之为“单例模式”。也就是一个类只有一个实例的意思。

    那么Spring是靠什么来了解究竟哪些类需要帮我们创建呢,这里介绍最常用的两种方式——JAVA注解配置,JAVA代码配置。之前的还有XML配置,groovy配置等,但是我们现在已经不推荐使用了。

    首先我们要介绍的,是JAVA注解配置,这是最简单也是最常用的一种方法。

    我们先来看看声明注解的语法:

                声明                                    含义        

       @Component                            当前类是组件,没有明确的意思

       @Service                                    当前类在业务逻辑层使用

       @Repositorty                             当前类在数据访问层使用

       @Con

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值