Spring入门

什么是Spring:
Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。
Spring实际上是一个“超级工厂”,也可以称Spring是一个“容器”,这个容器用来管理所有的对象的。
Spring的优缺点:
优点:
1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑
2.可以提供众多服务,事务管理,WS等。
3.AOP的很好支持,方便面向切面编程。
4.对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等
5.Spring DI机制降低了业务对象替换的复杂性。
6.Spring属于低侵入,代码污染极低。
7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部
缺点:
1.jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器
2.Spring不支持分布式,这也是EJB仍然在用的原因之一。
Spring的作用:
Spring框架能帮我们 管理对象及其 依赖关系,还提供像 通用日志记录性能统计安全控制异常处理等面向切面的能力,还能帮我管理最头疼的 数据库事务,本身提供了一套简单的 JDBC访问实现,提供与第三方数据访问框架集成(如Hibernate、JPA),与各种Java EE技术整合(如Java Mail、任务调度等等),提供一套自己的web层框架Spring MVC、而且还能非常简单的与第三方web框架集成。从这里我们可以认为Spring是一个 超级粘合平台,除了自己提供功能外,还提供粘合其他技术和框架的能力,从而使我们可以更自由的选择到底使用什么技术进行开发。而且不管是JAVA SE(C/S架构)应用程序还是JAVA EE(B/S架构)应用程序都可以使用这个平台进行开发。
Spring除了不能帮我们写业务逻辑,其余的几乎什么都能帮助我们简化开发
如何学好Spring
要学好Spring,首先要明确Spring是个什么东西,能帮我们做些什么事情,知道了这些然后做个简单的例子,这样就基本知道怎么使用Spring了。Spring核心是IoC容器,所以一定要透彻理解什么是IoC容器,以及如何配置及使用容器,其他所有技术都是基于容器实现的;理解好IoC后,接下来是面向切面编程,首先还是明确概念,基本配置,最后是实现原理,接下来就是数据库事务管理,其实Spring管理事务是通过面向切面编程实现的,所以基础很重要,IoC容器和面向切面编程搞定后,其余都是基于这俩东西的实现,学起来就更加轻松了。要学好Spring不能急,一定要把基础打牢,基础牢固了,这就是磨刀不误砍柴工。
Spring架构:
Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图所示。
Spring IOC( Inversion of Control,控制倒转 ):
IoC(Inversion of Control)称为控制反转,对于spring框架来说,就是由spring来负责控制 对象的生命周期和对象间的关系。
控制反转还有一个名字叫做DI(Dependency Injection),中文意思叫依赖注入。

Spring IOC是Spring中最核心的部分,是以Bean的方式来组织和管理Java应用中的各种组件,提供配置层次的解耦。
所有的Bean都由Spring BeanFactory根据配置文件生成管理。
ApplicationContext是BeanFactory的加强版,提供了更多的功能,如自动创建,国际化等。


IOC:其实这个Spring架构核心的概念没有这么复杂,更不像有些书上描述的那样晦涩。java程序员都知道:java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成,通常,每个对象在使用他的合作对象时,自己均要使用像new object() 这样的语法来完成合作对象的申请工作。你会发现:对象间的耦合度高了。而IOC的思想是:Spring容器来实现这些相互依赖对象的创建、协调工作。对象只需要关系业务逻辑本身就可以了。从这方面来说,对象如何得到他的协作对象的责任被反转了。

DI(依赖注入):
每个基于Java应用程序都有几个对象,这些对象一起工作来呈现出终端用户所看到的工作的应用程序。当编写一个复杂的Java应用程序时,应用程序类应该尽可能独立于其他Java类来增加这些类重用的可能性,并且在做单元测试时,测试独立于其他类的独立性。依赖注入(或有时称为布线)有助于把这些类粘合在一起,同时保持他们独立。
目的:
解耦合,每个组件只需要关注组件内部的事情
Spring中依赖注入主要分为三种方式:
设值注入:通过setter方法对属性进行注入
构造注入:通过构造方法对属性进行注入
p:属性注入:通过p:属性对属性进行注

Spring AOP:
搭建Spring开发环境:
Spring目录结构:
docs:Spring的帮助文档
libs:Spring的jar包目录。
scheme:Spring的scheme约束文件目录。

需要用到的Spring的jar包:
Spring的基础配置:
  • 添加Spring配置文件,名字可以随意命名。
  • 首先添加spring文件的头。
  • 配置一个bean文件映射,指定id和class属性。
    • id表示实例名称,用于在应用程序中进行反射出对象。
    • class表示实例的类名,必须是完整类名。
代码实现:
在代码中需要通过ApplicationContext接口来读取Spring的配置文件,可以自己指定名称,多个配置文件,可以指定为数组。
ClassPathXmlApplicationContext为ApplicationContext的实现类,用来从根目录开始读取xml格式的配置文件信息。
然后通过getBean(“id”),来读取配置的实例对象。
Bean:
  • 什么是Bean?
    • bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象。
  • Spring将所有组件都当做bean来进行管理,所有的对象都处于Spring的管理中。
  • Spring负责管理和维护所有的Bean,用户无需关心Bean的实例化。
  • 开发Spring主要做两件事
    • 创建Bean
    • 配置Bean
  • Spring的本质就是根据XML管理Java代码。将Java代码耦合提升到XML配置中。
bean的常用配置:
bean的作用域:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值