【Spring】Spring全面详解--什么是spring?spring的三大核心概念?(超详细建议收藏慢慢看)

本文详细介绍了Spring框架,包括其基本概念、核心的DI和IOC思想,以及面向接口编程的重要性。逐步讲解了从环境配置到创建第一个Spring应用的步骤,并深入探讨了依赖注入的不同类型和方式。此外,还详细阐述了Spring注解的使用,如@Component、@Autowired和@Resource,以及AOP(面向切面编程)的概念、目的和实现。
摘要由CSDN通过智能技术生成

Spring


第一章

1、理解spring的基本概念
2、配置spring的环境
3、编写基于spring的应用

1、什么是spring框架

spring:它是一个轻量级的J2EE框架,它主要用于降低java企业级应用程序的开发难度 
J2EE: java的企业级应用程序

【重要】:其他技术只要与spring一起结合使用,就会变的比较简单
		从事java开发,公司中一定会使用spring框架 

2、idea配置spring环境

1、配置schema文件,再编写xml文件会有提示信息
	schema文件,就是xml的约束文件,用于限制xml中编写的内容 

	a、将这一组schema文件复制到某一个目录中(不要有中文与空格)这个目录不要改动
	b、在idea中配置schema

2、配置spring核心配置文件 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"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">

</beans>

3、spring的核心概念

	1、DI-------------依赖注入

	2、IOC------------控制反转

	3、AOP------------面向切面编程(面向方面编程)

4、spring的编程思想

	【重点】:组件与组件应该进行低耦合 (一个组件不要过度依赖另一个组件)

	例如:公司里有一个员工非常厉害,有他在公司的大事小事他都可以搞掂,但如果他离开公司所有大小事都会全部瘫痪,这种情况就属于过度依赖(高耦合),这样的情况并不好

在使用spring之前

在java代码中,一个组件要访问另一个组件的方法,我们一般都是直接实例化,这种写法,就属于一种高耦合的写法(sppring不提倡)

例如:
        //数据访问层
        public class Dao{
   
            public void add(){
   
            }
        }


        //业务层
        public class Service{
   
            //如果service类中要访问Dao类的方法,以前我们是直接实例化(但这是一种高耦合写法,并不提倡)
            private Dao dao = new Dao();
            public void test(){
   
                dao.add();
            }

        }

使用spring之后

pring提倡的一种思想是:一个组件需要另一个组件不要直接实例化,而是通过spring产生
	
	注意:实体类是例外的,它是可以直接实例化的

版本分类

	spring 1.x
	spring 2.x
	spring 3.x
	spring 4.x
	spring 5.x-------------------------我们使用这个版本
	spring 6.x

5、第一个spring应用

	Demo---->Service-------->Dao	
步骤
1、创建Maven的java工程
	新增resources目录 

2、导入Spring的依赖
	
	    <dependency>
	      <groupId>org.springframework</groupId>
	      <artifactId>spring-context</artifactId>
	      <version>5.1.6.RELEASE</version>
	    </dependency>
3、在resources目录下创建spring的主配置文件 applicationContext.xml


4、编写InfDao数据访问层

	public class InfDao {
   

	    public void add(){
   
		System.out.println("向数据库中添加了一条数据");
	    }
	}

5、在applicationContext.xml文件中注册dao
	<bean id="infDao" class="org.java.dao.InfDao"/>


6、编写InfServicepublic class InfService {
   
	    
	    //声明InfDao
	    private InfDao dao;
	    
	    //声明该属性的set方法,用于接收spring产生的InfDao对象的实例
	    public void setDao(InfDao dao) {
   
		this.dao = dao;
	    }
	    
	    public void addData(){
   
		dao.add();
	    }
	    
	}

7、在applicationContext.xml文件中注册service, 并且注入它需要的对象

    <bean id="infService" class="service.InfService">
        <!--注入它需要的对象-->
        <property name="dao" ref="infDao"/>
    </bean>


8、编写测试类,进行测试

	public class Demo {
   

	    public static void main(String[] args) {
   

		//创建spring容器
		ApplicationContext cxt =
			new ClassPathXmlApplicationContext("applicationContext.xml");

		//通过cxt容器获得对象
		InfService infService = (InfService) cxt.getBean("infService");

		infService.addData();
	    }
	}

第二章

1、spring的基本应用
2、理解spring中的一些核心概念
3、spring注解的使用
4、spring整合mybatis

1、spring的基本应用

就是上一章的最后一个案例

2、spring核心概念

	1、DI-------------依赖注入

	2、IOC------------控制反转

	3、AOP------------面向切面编程(面向方面编程)
1、DI-----依赖注入

【定义】

类中属性的初始化,依赖于spring容器注入的参数才可以完成初始化操作,我们就称为“依赖注入”

【为什么要用依赖注入】

	依赖注入是采用一种组件化的思想,将组件创建与使用强制分离,这样可以降低组件之间的耦合度(实现低耦合)

【目的】

	依赖注入的目的:实现解耦合,降低组件之间的耦合度
2、IOC----控制反转

对比

	以前没有spring的时候我们需要用一个对象的方法时,我们可以自己创建对象实例 
	 
	有了spring以后,需要对象实例时,只能由容器创建,然后注入进来

定义

	对象的创建方式由自己主动创建变为由spring容器创建然后注入,这种创建对象的方式改变,就称为:控制反转

含义

	控制反转:是指创建对象方式由自己主动创建变为由spring容器创建,这一个过程中控制权发生改变

3、面向接口编程

面向接口编程的好处:
	
	1、隐藏代码实现细节
	2、更换底层业务代码很方便

实际开发中

在开发中,一般业务层(service)与数据访问层(dao)都需要编写接口

	dao接口:           org.java.dao.InfDao
	dao接口的实现类:   org.java.dao.impl.InfDaoImpl


	service接口:       org.java.service.InfService
	service接口的实现类:org.java.service.impl.InfServiceImpl

4、spring注入类型分类

为了便于理解,此时用的是first的案例

1、对象的注入–ref

dao的代码

    public  void add(){
   //对象的注入
        System.out.println("添加成功");
    }

service的代码

    //声明dao
    private firstDao fdao;

    //声明该属性的set方法,用于接收spring产生的firstDao对象的实例
    public void setFdao(firstDao fdao) {
        this.fdao = fdao;
    }

由于声明的是一个fdao对象,那么配置文件中

        <bean id
  • 34
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

arjunna

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值