Java经典框架之Spring
Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。
一、Spring简介
1. Spring概览
官网地址 : http://www.spring.io
简化Java开发的。Spring不仅只是一个框架,Spring已经成为了一种生态。(与其说是Java开发,不如说是Spring开发)
一个Java应用层程序,是由许多个类组成的,这些类之间必然存在依赖关系,当项目越来越大,依赖关系越来越复杂,需要一个专业的框架来处理类之间的依赖关系,为了解决这个问题,SUN公司推出了EJB(重量级)专门用来解决类的依赖问题。
Spring(Spring Framework) 是一个开源框架,最早由Rod Johnson创建,并在《Expert One-on-One:J2EE Design and Development》这本著作中进行了介绍。Spring是为了解决企业级应用开发的复杂性而创建的,使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情。但Spring不仅仅局限于服务器端开发,任何Java应用都能在简单性、可测试性和松耦合等方面从Spring中获益。
bean的各种名称……虽然Spring用bean或者JavaBean来表示应用组件,但并不意味着Spring组件必须要遵循JavaBean规范。一个Spring组件可以是任何形式的POJO(POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称)。
Spring 可以做非常多的事情。但归根结底,支撑Spring的仅仅是少许的基本理念,所有的理念都可以追溯到Spring最根本的使命上:简化Java开发。这是一个郑重的承诺。许多框架都声称在某些方面做了简化,但Spring的目标是致力于全方位的简化Java开发。这势必引出更多的解释,Spring是如何简化Java开发的
1.核心概念
IoC控制反转:使用对象时,在程序方法中不要主动使用new创建对象,而是由外部提供对象,对象的控制权由程序转移到外部,这种思想叫做控制反转。这种思想的作用就是为了解耦。spring对IoC思想做了实现。spring提供了一个容器,称为IoC容器,用来充当IoC思想中的外部。
IoC管理的是service和dao之中的对象。
IoC容器负责对象的创建、初始化等一系列化工作,被创建和被管理的对象在IoC容器中被统称为bean。
有时候,bean与bean之间有互相依赖的关系(比如service层的bean。肯定是要跟dao层的bean联系到一起的,service层的bean要创建一个dao层的bean),这时候,IoC容器会自动产生依赖。这个过程叫做DI(依赖注入)。
IoC容器配置
IoC容器主要用于解耦。
接口就是一个空壳,里面只写了规范,实现类才是接口的灵魂。
IoC容器配置
首先,导入springframework的坐标
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
导入依赖完毕后,idea已经识别到了坐标的导入,idea会在new file那里显示可以创建spring的配置文件。在resource之中创建一个就行了。把文件名取为applicationContext。接着,在applicateionContext里边配置bean。
接下来就可以创建IoC容器,直接使用IoC容器来获取bean了(项目的准备工作已经创建了一个BookDao接口以及它的实现类)。IoC容器创建bean,实际上也是通过调用实现类的无参构造方法(下面会讲到)。
注意,bean的id不能重复。
由于BookService之中存在BookDao,在创建BookService的bean的时候需要创建BookDao的bean,所以需要在配置文件中的BookService之中使用属性表明BookService依赖于BookDao
接下来就可以创建IoC容器,直接使用IoC容器来获取bean了(项目的准备工作已经创建了一个BookDao接口以及它的实现类)。IoC容器创建bean,实际上也是通过调用实现类的无参构造方法(下面会讲到)。
注意,bean的id不能重复。
由于BookService之中存在BookDao,在创建BookService的bean的时候需要创建BookDao的bean,所以需要在配置文件中的BookService之中使用属性表明BookService依赖于BookDao。
JAVA EE
javaEE是一个开发分布式企业级应用的规范
javaEE 基于注解和CDI
利用web开发的JFC MVC框架
用于进程数据库操作的JPA(java持久层API)实现
基于EJB(javaee服务器端组件模型)和pojo的实现
Spring
基于IOC和AOP
基于XML配置(注释)
使用Spring DAO框架(基于模板设计patter)连接到数据库
提供抽象层以支持各种JTA(事务API)实现供应商
提供端到端平台构建web应用程序,实现使用DI和AOP的松散耦合
开放源码许可