Spring (一)

Spring框架简介

Spring是一个开源的轻量级的应用开发框架,其目的是用于简化企业级应用程序的开发,减少入侵

Spring提供的IOC和AOP应用,可以将组件的耦合度降到最低,即解耦,便于日后的维护和升级

Spring为系统提供了一个整体的解决方案,开发者可以利用本身提供的功能外,也可以与第三方框架和技术整合应用,可以自由的选择采用哪种技术进行开发。即:可以单独使用,也可以和Struts框架,ibatis框架等组合使用

为什么要使用Spring?
Spring的本质是管理软件中的对象,如何创建对象和维护对象之间的关系。

Spring的主要功能

这里写图片描述

组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:

1)IoC(Inversion of Control)控制反转,对象创建责任的反转,在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。

spring中有三种注入方式,一种是set注入,一种是接口注入,另一种是构造方法注入。

2)AOP面向切面编程

aop就是纵向的编程,如下图所示,业务1和业务2都需要一个共同的操作,与其往每个业务中都添加同样的代码,不如写一遍代码,让两个业务共同使用这段代码。

spring中面向切面变成的实现有两种方式,一种是动态代理,一种是CGLIB,动态代理必须要提供接口,而CGLIB实现是有继承。

容器和Bean管理

Spring容器简介

在Spring中,任何的java类和JavaBean都被当成Bean处理,这些Bean通过容器管理和应用。

Spring容器实现了IOC和AOP机制,这些机制可以简化Bean对象创建和Bean对象之间的解耦。

Spring容器有BeanFactory和ApplicationContext两种类型

什么是JavaBean:一种简单规范的java对象

何时使用Spring?

当需要管理javaBean对象的时候就可以使用。Spring是最简洁的对象管理方案之一。

Spring容器的实例化

ApplicationContext继承自BeanFactory接口,拥有较多的企业级方法,

//加载配置文件实例化
 String conf="applicationContext.xml";
         ApplicationContext ac=
             new ClassPathXmlApplicationContext(conf);

Spring容器的使用

首先在applicationContext.xml中添加Bean定义

<bean id="标识符" class="Bean类型"> </bean>

然后在创建BeanFactory和ApplicationContext容器对象后,调用getBean()方法获取Bean的实例即可。

getBean("标识符")

例:

<bean id="c1" class="java.util.GregorianCalendar">
    </bean>
Student s=
             ac.getBean("s1",Student.class);

Bean的实例化

1、用构造器来实例化

id或者name属性:用于指定Bean名称,用于从Spring中查找这个Bean对象。

class:用于指定Bean类型,会自动调用无参构造器创建对象

<!--  构造方法-->
    <bean id="c1" class="java.util.GregorianCalendar">
    </bean>

2、使用静态工厂方法实例化

id:用来指定Bean的名称

class:用来指定工厂的类型

factory-method:用于指定共产中创建Bean对象的方法,必须用static修饰的方法。

<!-- 采用Calendar.getInstance(),静态工厂方法 -->
    <bean id="c2" class="java.util.Calendar" factory-method="getInstance">
    </bean>

3、使用实例工厂方法实例化

id:用来指定Bean的名称

factory-bean属性用于指定Bean对象

factory-method属性用于指定工厂中创建Bean对象的方法

<bean id="date1" factory-bean="c2" factory-method="getTime">
</bean>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值