Spring-IOC学习笔记-01初识
Posted Moon&&Dragon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring-IOC学习笔记-01初识相关的知识,希望对你有一定的参考价值。
初识Spring-IOC
文章目录
1 简介
1.1 什么叫Spring
- 狭义的Spring:
Spring Framework
- 广义的Spring:指的是整个Spring生态,包含**
Spring Framework,Spring boot,Spring cloud,Spring Security
**等在内的一站式开发框架。
1.2 Spring架构图
2 初识Spring IOC
- IOC (Inversion of Control): 控制反转,是一种设计理念。将实例对象的权利转移到IOC容器管理,使用时不再需要new对象,直接在IOC容器里面拿。
- DI (dependency injection): 依赖注入,是实现IOC理念的一种方式。
- 核心作用就是:由Spring IOC容器创建和管理对象(Beans)
2.1 传统方式
当使用一个类的时候都需要先去实例这个类对象,每多一个,多实例一个,这样的方式代码耦合性相当高,当需求改变时,需要修改代码中对应的实例对象。
2.2 IOC思想
全部统一由一个容器去管理这些需要的类,当需要使用时,直接在容器中拿,这样减少了代码的耦合性。
2.3 DI实现
DI依赖注入,在容器中可以将类中需要的其他类注入。
3 SpringIOC初体验
3.1 maven导入
<!--spring-context-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
3.2 准备entity类
每一个entity类都需要遵循javaBean规范,必须书写get和set方法。
3.2.1 woman
public class Woman {
/**
* 姓名
*/
private String name;
/**
* 年龄
*/
private int age;
/**
* 外貌
*/
private String outLook;
}
3.2.2 Man
public class Man {
/**
* 姓名
*/
private String name;
/**
* 资产
*/
private String fund;
/**
* 心动女生
*/
private Woman woman;
/**
* 方法:示爱
*/
public void proposal(){
System.out.println("这名拥有"+fund+"资产的名字叫"+name+"的男嘉宾向年纪为"
+woman.getAge()+"的外貌是"+woman.getOutLook()+"的"
+woman.getName()+"女士示爱了");
}
}
3.3 书写配置文件
在配置文件中可以添加多个bean
- id:bean的定义name
- class:需要ioc管理的entity类路径
- property:配置参数
- value:设置基本数据类型的参数
- ref:引用类型的参数引用
<?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参数 -->
<bean id="lili" class="com.moon.entity.Woman">
<property name="name" value="莉莉"/>
<property name="age" value="18"/>
<property name="outLook" value="面容较好的"/>
</bean>
<bean id="jackMa" class="com.moon.entity.Man">
<property name="name" value="杰克马"/>
<property name="fund" value="数百亿"/>
<property name="woman" ref="lili"/>
</bean>
</beans>
3.4 书写测试类
@Test
public void springIoc() {
// 获得IOC容器上下文
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 取bean
// 方式一:通过id取bean,需要强转
Woman lili = (Woman) context.getBean("lili");
// 方式二:通过id取bean,传入返回类型,不需要强转
Man jackMa = context.getBean("jackMa", Man.class);
System.out.println(lili);
jackMa.proposal();
}
以上是关于Spring-IOC学习笔记-01初识的主要内容,如果未能解决你的问题,请参考以下文章