栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring框架引言、作用以及核心思想之一IOC(以及IOC补充的DI)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring框架引言、作用以及核心思想之一IOC(以及IOC补充的DI)

String-day01 1. Spring框架的引言

​ spring(春天),生于2002年,由 Rod Johnson 创作。Spring框架是一个集众多设计模式于一身的 开源的、轻量级的项目管理框架。致力于JAVAEE轻量级解决方案。相对于原来学过的mybatis 框架有了本质的区别,不是替换原来的某个框架,而是对其进行整合管理。

​ 轻量级解决方案:提供一个以简单的、统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合糅合在一起建立一个连贯的体系。

2. Spring框架的作用

​ Spring框架用来管理 [创建 | 使用 | 销毁] 项目中的组件,由于spring框架可以帮我们生产项目中组件对象,因此也习惯成spring是一个工厂|容器。

​ 组件:项目中的service,dao,action,都是项目中的组件

​ 注意:spring框架通常不管理对实体类对象创建

3. 环境搭建

下面是一个平常使用时的例子,这里我们先不用考虑包以及类放在哪些包下

这是在没有使用spring的时候我们是这么去管理组件对象的,通过new去创建,拿到对象之后去调用方法。

项目中有一个天生就是用来做项目管理的spring,我们接下来来学习一下如何使用spring来进行上面组件的创建、删除和销毁。

    引入spring框架的依赖

spring的设计和曾经mybatis的设计不一样,spring的设计是基于一个一个的小模块进行管理,所以在用的时候必须把它依赖的这些模块以及核心模块全部给引入进去。

注意:引入spring核心模块以及依赖模块

spring - core	核心依赖

spring - context 

spring - jdbc

spring - web

spring - expression

spring - aspects

spring - beans

spring - context - supports

引入依赖


      org.springframework
      spring-core
      4.3.2.RELEASE
  
  
      org.springframework
      spring-beans
      4.3.2.RELEASE
  
  
      org.springframework
      spring-web
      4.3.2.RELEASE
  
  
      org.springframework
      spring-expression
      4.3.2.RELEASE
  
  
      org.springframework
      spring-aop
      4.3.2.RELEASE
  
  
      org.springframework
      spring-context
      4.3.2.RELEASE
  
  
      org.springframework
      spring-context-support
      4.3.2.RELEASE
  
  
      org.springframework
      spring-aspects
      4.3.2.RELEASE
  
  
      org.springframework
      spring-jdbc
      4.3.2.RELEASE
  

    引入spring框架配置文件
# 配置文件名称: 任意名称 
# 配置文件位置: 项目中根下任意位置
# 配置文件的内容:
	
    
    

    通过spring管理组件

    启动工厂,获取对象进行测试
public class TestSpring {

    public static void main(String[] args) {
        // 启动工厂
        // 通过resources目录下xml去构建工厂
        ApplicationContext context = new ClassPathXmlApplicationContext("init/spring.xml");

        // 获取工厂中创建好的对象 参数:获取工厂中指定对象的唯一标识
        UserDAO userDAO = (UserDAO) context.getBean("aa");
        System.out.println(userDAO);
        userDAO.save("xiaochen");
    }
}

总结:

另外

标签的id建议写成指定组件对象的名字,其中首字母小写


4. spring框架中核心思想
spring框架中核心思想
	IOC	  AOP	两个思想	IOC思想	AOP
	IOC:	控制反转| 反转控制
	AOP:	面向切面的编程
	
	
	IOC:	Inversion(反转)	Of		Controll	控制反转 | 反转控制
	
		  定义:所谓控制反转其实指的是控制权力的反转
		  
		  通俗定义:就是将原来手动通过new关键字创建对象的权利交给spring,通过在配置文件中配置bean标签形式创建对象,交给
		  		   spring由spring创建对象的过程
		  		   
 	DI:  Denpendcy	Injection	依赖注入	(在IOC的基础上又提出的一个补充概念)
    	  定义:为组件中的成员变量完成赋值的过程  这个过程就称之为依赖注入
    	  语法:
    	  		1.组件对象中需要哪个组件|谁	 将谁声明为成员变量并提供公开的SET方法...
    	  		2.在spring的配置文件中对应的组件标签内使用property标签去完成属性的赋值操作
    	  		
    	  		
   	IOC 全部概述:控制反转  就是将原来手动通过new关键字创建对象的权利交给spring,由spring工厂创建对象的过程,
   						 当然spring不仅要创建对象还要在创建对象的同时通过DI的方式维护组件与组件的调用关系
   						
                        
2.DI基本语法

	DAO组件:
		public class DeptDAOImpl implements DeptDAO{
            @Override
            public void save(String name) {
                System.out.println("DAO   name:" + name);
            }
        }
        
   Service组件:
        //service组件
        public class DeptServiceImpl implements DeptService{

            // 需要DAO组件对象  依赖DAO组件
            private DeptDAO deptDAO;

            // 公开的SET方法
            public void setDeptDAO(DeptDAO deptDAO) {
                this.deptDAO = deptDAO;
            }

            @Override
            public void save(String name) {
                System.out.println("deptService name:" + name);
                deptDAO.save(name);
            }
        }
   配置文件赋值:

    
    

    
    
        
        
    
    
    启动工厂测试:
        // 启动工厂
        ApplicationContext context = new ClassPathXmlApplicationContext("di/spring.xml");

        // 获取deptDAO
        DeptService deptService = (DeptService) context.getBean("deptService");
        deptService.save("百知教育");    


DI操作第一步:

组件对象中需要哪个组件|谁 将谁声明为成员变量并提供公开的SET方法…

DI操作第二步:

在spring的配置文件中对应的组件标签内使用property标签去完成属性的赋值操作

测试:

public class TestSpring {
    public static void main(String[] args) {
        // 启动工厂
        ApplicationContext context = new ClassPathXmlApplicationContext("di/spring.xml");

        // 获取deptDAO
        DeptService deptService = (DeptService) context.getBean("deptService");
        deptService.save("百知教育");
    }
}

结果:

4.1 IOC(控制反转)

IOC(inversion of controll)控制反转

# 1.定义
    将对象的创建由原来(new)的方式转移到配置文件中,交给spring工厂来创建对象

DI(Denpendcy)依赖注入

# 1.定义
    spring不仅要创建对象,还要建立类与类之间的关系,因此在控制反转的基础上又提出了依赖注入的概念。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号