详解Spring框架

Spring

 

1、简介,标红为核心技术点

2、IOC/DI

3、环境搭建

4、Spring创建Bean的三种方式(含两种工厂方式)

5、Spring的几种注入方式

6、scope属性详解(单例设计模式)

7、用SpringDI实现生成SqlsessionFactory对象

8、AOP

9、声明式事务

 

1、简介:

Spring是一种轻量级的企业应用开发框架,目的是为了使开发变得更加容易,通过启用基于POJO的模型编程来促进良好的编程实践。

使用Spring框架的好处:

1、Spring可以使用POJOs来开发企业级应用程序(Plain Old Java Objects, 简单洁净Java对象),使用POJOs的好处是不需要一个EJB容器,你可以选择使用一个 servlet 容器,比如 Tomcat 。

J2EE中容器充当中间件的角色。主要的容器包括:

WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。

EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如SERVLET不用关心HTTP的细节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。

2、测试一个用 Spring 编写的应用程序很容易,因为环境相关的代码被移动到这个框架中。此外,通过使用 JavaBean-style POJOs,它在使用依赖注入注入测试数据时变得更容易。

3、SpringMVC:Spring 的 web 框架是一个设计良好的 web MVC 框架,MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素之间的松散耦合。springMVC框架,与Spring是父子容器关系。

  • 模型(Model)封装了应用程序数据,通常它们将由POJO类组成。
  • 视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出。
  • 控制器(Controller)负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染。

4、Spring就是一个大容器(Container),这个框架最主要的就是spring提供一个ApplicationContext接口,是BeanFactory子接口,包含了所有功能。它包含如下几个模块:

A、Test:测试

B、Core Container:核心容器,Spring启动的基本条件

       Beans:Spring负责创建类的对象并管理

       Core:核心类

       Context:上下文参数,获取外部资源,管理注解

       SpEL:expression.jar   Spring表达式语言

C、AOP

D、Aspects:切面,Aop依赖包

E、Data Access/Intergration:Spring封装数据访问层

       JDBC:Spring对JDBC的封装,用起来方便

       ORM:封装持久层框架代码 例如Hibernate

       Transaction:对应Spring-tx.jar   声明式事务

F:Web   Spring完成Web功能

       例如:Tomcat加载配置文件用 Spring-Web.jar  WebMVC就是SpringMVC

 

2、控制反转IOC/依赖注入(DI)

Spring最著名的技术是控制反转(IOC)的依赖注入(DI)模式,控制反转是一个通用的概念。

之前由程序员主动new去实例化对象,现在交给Spring负责,解耦!

控制反转中控制:控制类的对象;反转指对象的创建交给Spring负责

依赖注入:举个例子:类A依赖于类B,注入意味着类B将通过IOC容器被注入到类A中。

简单来说就是控制权利移交到了IOC容器中,A需要B来合作完成某一件事情,不用管双方是怎么实现的,直接拿来用即可。Spring把所有活都干了。

控制反转(设计思想):将设计好的对象交给容器去控制,区别于传统的我们自己new对象,IOC专门有个容器

 

3、环境搭建

导入核心功能jar包

在src下创建ApplicationContext.xml(名字随意)  所有配置信息存到ApplicationContext容器中

Spring配置文件基于Schema     引入头通过<bean/>标签创建对象,默认配置文件被加载时创建

 

 

4、Spring创建Bean对象的三种方式(含两种工厂方式)

A、通过构造方法创建,默认无参的构造方法,有参的配置如下:

类中提供有参的构造方法

在applicationContext.xml中设置调用哪个构造方法创建对象,如果设定对条件匹配多个构造方法则执行最后那个

参数:     index :参数索引,从0开始        name:参数名         type:类型(区分开关键字与封装类Int与Integer)

B、实例工厂

工厂设计模式:帮助创建类的对象,一个工厂可以生产多个对象    

实例工厂:要先创建工厂才能生产对象    实现如下:

要先有个实例工厂

在xml中配置工厂对象以及需要创建的对象

由factory工厂对应的newInstance方法来创建People对象

B、静态工厂(不用创建工厂,快速创建对象)

只需在方法上加Static,其余同实例工厂

xml中

 

5、Spring的几种注入方式(如何给Bean的属性赋值)

A、通过构造方法设置值(上面已写)

B、设置注入(通过set方法)

           如果类中属性是基本数据类型或者String等

           给类中Set属性赋值

           给类中List属性赋值

           数组类型属性赋值

           Map属性赋值

           给类中Properties属性赋值

 

6、scope属性详解(单例设计模式)

 

7、用SpringDI实现生成SqlsessionFactory对象

 

8、AOP

面向切面的程序设计(AOP)

Spring 框架的一个关键组件是面向方面的程序设计(AOP)框架。一个程序中跨越多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。有各种各样常见的很好的关于方面的例子,比如日志记录、声明性事务、安全性,和缓存等等。

在 OOP 中模块化的关键单元是类,而在 AOP 中模块化的关键单元是方面。AOP 帮助你将横切关注点从它们所影响的对象中分离出来,然而依赖注入帮助你将你的应用程序对象从彼此中分离出来。

Spring 框架的 AOP 模块提供了面向方面的程序设计实现,可以定义诸如方法拦截器和切入点等,从而使实现功能的代码彻底的解耦出来。

 

9、声明式事务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值