2019.12.02——Spring学习(ioc)

Spring概念

1. Spring是开源的轻量级框架;

2. Spring核心:IOC(控制反转)、AOP(面向切面编程);

3. Spring是一站式框架:Spring在javaee三层结构中,每层都提供不同的解决技术:

- web层:springMVC

- service层:IOC

- dao层:JDBCTemplate

Spring的IOC操作

1. 对象创建交给Spring进行管理;

2. IOC操作的两种方式:配置文件、注解。

IOC底层原理

原文链接:Spring IOC的原理及详解

1. IOC的提出是为了解决对象之间耦合度过高的问题,IOC作为“第三方”实现具有依赖关系的对象之间的解耦;

2. 控制反转:对象A获得依赖对象B的过程,由主动行为变为了被动行为,控制权颠倒过来了;

3. 依赖注入:IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。控制被反转之后,获得依赖对象的过程由自身管理变为了由IOC容器主动注入;

4. IOC中最基本的技术就是“反射(Reflection)”编程;

5. 我们可以把IOC容器的工作模式看做是工厂模式的升华,可以把IOC容器看作是一个工厂,这个工厂里要生产的对象都在配置文件中给出定义,然后利用编程语言的的反射编程,根据配置文件中给出的类名生成相应的对象。从实现来看,IOC是把以前在工厂方法里写死的对象生成代码,改变为由配置文件来定义,也就是把工厂和对象生成这两者独立分隔开来,目的就是提高灵活性和可维护性。

IOC底层使用的技术

1. xml配置文件

2. dom4j解析xml

3. 工厂设计模式

4. 反射

IOC入门案例

1. 导入jar包

做Spring最基本功能的时候,需要导入四个核心的jar包以及支持日志输出的jar包。

2. 创建类及其成员函数

 1 public class User {
 2
 3     public void fun() {
 4         System.out.println("Just a function.");
 5     }
 6
 7     public static void main(String[] args) {
 8         // 原始做法
 9         // User user = new User();
10         // user.fun();
11     }
12 }

3. 创建Spring配置文件

(1)Spring核心配置文件名称和位置不是固定的,最好放在src里面,官方推荐名称为applicationContext.xml(可自行修改);

(2)引入schema约束。Spring在启动的时候需要验证xml文档,约束的作用就是来验证配置文件(xml文档)的语法正确性。XML文档的schema约束定义了文档的结构,内容和语法,元素和属性等。

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
5 </beans>

(3)配置对象创建

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
5     <!-- ioc example -->
6     <bean id="user" class="cn.itcast.ioc.User"></bean>
7 </beans>

(4)编写测试代码

 1 import org.junit.Test;
 2 import org.springframework.context.ApplicationContext;
 3 import org.springframework.context.support.ClassPathXmlApplicationContext;
 4
 5 public class TestIOC {
 6
 7     @Test
 8     public void testUser() {
 9         //1 加载spring配置文件,根据配置文件创建对象
10         ApplicationContext context =
11                 new ClassPathXmlApplicationContext("bean.xml");
12         //2 得到配置创建的对象
13         User user = (User) context.getBean("user");
14         System.out.println(user);
15         user.fun();
16     }
17 }

原文地址:https://www.cnblogs.com/geekshawn/p/11985801.html

时间: 2024-10-08 06:07:23

2019.12.02——Spring学习(ioc)的相关文章

spring学习——Ioc基础三(Ioc配置使用)

一.XML配置的结构  一般配置文件结构如下: <beans>       <import resource="resource1.xml"/>       <bean id="bean1"class=""></bean>       <bean id="bean2"class=""></bean>   <bean name=&q

spring学习——Ioc基础二

一.IoC容器的概念 IoC容器就是具有依赖注入功能的容器,IoC容器负责实例化.定位.配置应用程序中的对象及建立这些对象间的依赖.应用程序无需直接在代码中new相关的对象,应用程序由IoC容器进行组装.在Spring中BeanFactory是IoC容器的实际代表者. Spring IoC容器如何知道哪些是它管理的对象呢?这就需要配置文件,Spring IoC容器通过读取配置文件中的配置元数据,通过元数据对应用中的各个对象进行实例化及装配.一般使用基于xml配置文件进行配置元数据,而且Sprin

Spring学习——IOC(3)

Spring的bean管理(注解方式) 1. 示例准备 (1)导入jar包 (2)创建类和方法 1 public class User { 2 public void fun() { 3 System.out.println("function"); 4 } 5 } (3)创建spring配置文件并引入约束 在beans约束的基础上,引入context约束. <?xml version="1.0" encoding="UTF-8"?>

spring学习——Ioc基础一

一.IoC是什么 IOC--Inversion of Control Ioc-Inversion of Control,即"控制反转",不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制.如何理解好Ioc呢?理解好Ioc的关键是要明确"谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了",那我们来深入分析一下: 谁控制谁,控制什么:传统Java SE程序设计,我们直接在对

spring学习——Ioc基础四(Di之循环依赖)

一. 什么是循环依赖 循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终反映为一个环.此处不是循环调用,循环调用是方法之间的环调用.如图3-5所示: 图3-5 循环引用 循环调用是无法解决的,除非有终结条件,否则就是死循环,最终导致内存溢出错误. Spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何解决循环依赖呢?首先让我们来定义循

Spring学习笔记1——IOC: 尽量使用注解以及java代码(转)

在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目. 预想的基本流程如下: 1.用户网站注册,填写用户名.密码.email.手机号信息,后台存入数据库后返回ok.(学习IOC,mybatis,SpringMVC的基础知识,表单数据验证,文件上传等) 2.服务器异步发送邮件给注册用户.(学习消息队列) 3.用户登录.(学习缓存.Spring Security) 4.其他. 边学习边总结,不定时更新.项目环境为Intellij + Spring4. 一.准备工作. 1.m

Spring学习笔记1——IOC: 尽量使用注解以及java代码

在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目. 预想的基本流程如下: 1.用户网站注册,填写用户名.密码.email.手机号信息,后台存入数据库后返回ok.(学习IOC,mybatis,SpringMVC的基础知识,表单数据验证,文件上传等) 2.服务器异步发送邮件给注册用户.(学习消息队列) 3.用户登录.(学习缓存.Spring Security) 4.其他. 边学习边总结,不定时更新.项目环境为Intellij + Spring4. 一.准备工作. 1.m

spring学习2:基于注解+xml实现ioc和依赖注入

spring学习2:基于注解+xml实现ioc和依赖注入 一.在spring配置文件中开启spring对注解的支持 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&qu

Spring学习之Ioc控制反转(1)

开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------------------------------开始啦啦啦啦啦------------------------------------------------------------------------------- 从开始接触spring起,听到最多的就是Ioc(控制反转)和AOP(面向切面编程