Spring入门1-基本概念

来源:互联网 发布:希尔排序算法流程图 编辑:程序博客网 时间:2024/05/16 04:57

一、spring概念

Spring是一个轻量级的控制反转(IOC-inverse Object Control)和面向切面(AOP)的容器框架。
spring的设计思想:单例模式和工厂模式

二、spring的框架优点

  • 方便解耦,简化开发

Spring就是一个大工厂,将所有对象创建和依赖关系维护,交给spring管理

  • AOP编程支持

Spring提供面向切面编程,方便实现对程序进行权限拦截、运行监控等功能

  • 声明式事务的支持

只需要通过配置就可以完成对事务的管理,无需手动编程

  • 方便程序测试

spring对junit4支持,可以通过注解方便的测试spring程序

  • 方便继承各种优秀开源框架

spring其内部提供了对各种优秀框架的支持(struts 、 hibernate、mybatis)

  • 降低javaEE API的使用难度

Spring对javaEE开发中非常难用的一些API(JDBC、远程调用等)都提供了封装,使API的使用难度降低

三、Spring技术知识点

  • 核心技术IOC和AOP
  • 数据访问(持久层解决方案)
  • web层解决方案(SpringMVC)
  • 集成(整合其他开源框架)

四、入门前期概念

  • IOC控制反转和DI(depedent Inject)依赖注入

    IOC:将原本在程序中手动创建的HelloService对象的控制权交给Spring框架管理,简单说,就是创建HelloService对象控制权被反转到了Spring框架。
    DI:依赖注入(构造方法注入,set注入)通过配置进行注入
    IOC 和 DI 的区别
    IOC控制反转指将对象的创建权反转到了spring容器,DI依赖注入指spring创建对象的过程中,将对象依赖属性通过配置文件进行注入。

  • Spring工厂接口
    BeanFactory接口和ApplicationContext接口区别?
    (1) ApplicationContext接口继承BeanFactory接口,Spring核心工厂是BeanFactory, BeanFactory采取延迟加载,第一次getBean时才会初始化Bean,ApplicationContext是会在加载配置文件时,初始化Bean
    (2)ApplicationContext是对BeanFactory扩展,(国际化处理,事件传递 Bean自动装配 各种不同应用层的Context实现)
    开发中基本都用ApplicationContext,web项目用WebApplicationContext,很少用到BeanFactory

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml" );UserService userService = (UserService)ctx.getBean("userService" );User u = new User();userService.add(u);

五、Spring配置步骤

1.下载Spring最新开发包
http://www.springsource.org/download/community 下载spring3.2 的开发包。目录结构如下:

  • docs 存放API和 规范文档
  • libs 开发jar包
  • schemas 开发过程中需要导入xml的schema 约束

2、复制Spring开发 jar包到工程
复制核心容器包含jar包 (beans、core、context、expression language)
spring 的 jar包 需要依赖 commons-logging的 jar (commons-logging 类似 slf4j 是通用日志组件,需要整合 log4j )
3、编写Spring核心xml配置文件
在src目录创建 applicationContext.xml
在 docs\spring-framework-reference\html 找到 xsd-config.html
4、在程序中读取Spring配置文件
通过Spring框架获得Bean,完成相应操作。加载classpath(src):
new ClassPathXmlApplicationContext(“applicationContext.xml”);
5、创建Spring 核心工厂对象
通过工厂的getBean 获得配置实例对象 (UserService ) applicationContext.getBean(“userService “);

0 0