spring框架---第一节Ioc和DI(注入)

1. Spring简介

  1.1 Spring是什么

   Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoCInverse Of Control:反转     控制)和AOPAspect Oriented Programming:面向切面编程)为内核。提供了展现           层 SpringMVC 持久层 Spring JDBCTemplate 以及业务层事务管理等众多的企业级应用技    术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架。

1.2 Spring发展历程

Rod Johnson  Spring 之父)

2017  9 月份发布了 Spring 的最新版本 Spring5.0 通用版(GA

1.3 Spring的优势(重点)

1)方便解耦,简化开发

通过 Spring 提供的 IoC容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度耦合。

用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

2AOP 编程的支持

通过 Spring AOP 功能,方便进行面向切面编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松实现。

3)声明式事务的支持

可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务管理,提高开发效率和质量。

4)方便程序的测试

可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。

2. Spring快速入门

2.1 Spring程序开发步骤

 新建maven后,导入 Spring 开发的基本包坐标配置在pom.xml文件中spring框架---第一节Ioc和DI(注入)_第1张图片

  编写 Dao 接口和实现类

接口:

spring框架---第一节Ioc和DI(注入)_第2张图片

实现类:

spring框架---第一节Ioc和DI(注入)_第3张图片

 创建 Spring 核心配置文件

在resources文件下创建spring-config 自动生成以下代码 

  Spring 配置文件中配置 UserDaoImpl

加在spring核心配置文件中

 使用 Spring  API 获得 Bean 实例

spring框架---第一节Ioc和DI(注入)_第4张图片

 总结spring开发步骤:

        1.配置pom.xml中基本坐标

        2.创建dao接口并实现接口类

        3.创建spring-confing配置文件

        4.配置文件中对bean进行配置事项bookDaoImpl

        5.main函数中使用applicationContext 实例化容器 使用getbean获得bean对象

DI注入:

依赖注入(Dependency Injection):它是 Spring 框架核心 IOC 的具体实现。在编写程序时,通过控制反转,把对象的创建交给了 Spring,但是代码中不可能出现没有依赖的情况。IOC 解耦只是降低他们的依赖关系,但不会消除。例如:业务层仍会调用持久层的方法。那这种业务层和持久层的依赖关系,在使用 Spring 之后,就让 Spring 来维护了。简单的说,就是坐等框架把持久层对象传入业务层,而不用我们自己去获取。

因为UserServiceUserDao都在Spring容器中,而最终程序直接使用的是UserService,所以可以在Spring容器中,将UserDao设置到UserService内部。

注入方式:

1.构造器注入

        接口实现类bookDaoImpl中创建构造器

在接口类serviceDaoImpl中删除业务层中使用new方法创建dao对象 并且创建set方法获得传来的bookDao对象

配置文件中配置service和dao的关系

spring框架---第一节Ioc和DI(注入)_第5张图片

  2.静态工厂注入

创建静态方法

spring框架---第一节Ioc和DI(注入)_第6张图片

3.实例工厂注入

spring框架---第一节Ioc和DI(注入)_第7张图片

使用接口FactoryBean

spring框架---第一节Ioc和DI(注入)_第8张图片

spring框架---第一节Ioc和DI(注入)_第9张图片

除了对象的引用可以注入,普通数据类型,集合等都可以在容器中进行注入 

注入数据的三种数据类型  通过value注入

普通数据类型

引用数据类型

集合数据类型

 

 spring框架---第一节Ioc和DI(注入)_第10张图片

 

 

你可能感兴趣的:(spring,java,后端)