Spring 学习(一)

来源:互联网 发布:淘宝商城牛仔男装裤子 编辑:程序博客网 时间:2024/05/21 19:35

spring概述

首先我们说Spring是一个轻量级的j2ee开源框架,它的作用是为了解决企业应用开发程序的复杂性而创建的,该框架的主要优势是其良好的设计及分层架构。同时,Spring还提供了和其他开源软件的无缝结合,为j2ee应用程序的开发提供了集成的框架。


spring核心

spring的核心是控制反转——ioc,通过配置文件来完成业务对象之间的依赖注入,它鼓励一个良好的习惯,那就是注入对接口的编程而不是对类的编程。


spring给软件开发带来了什么

方便解耦,简化开发
AOP编程的支持
方便集成各种优秀框架(整合struts2,hibernate等)
降低了Java API的使用难度(Spring提供大量工具类,简化代码的编写)


Spring的体系结构

Spring的体系结构


对应jar包

下载地址:http://download.csdn.net/detail/readgo_xxg/5322489
下载完整spring jar包


jar包目录结构

docs 文档目录(api 和 规范)
libs 开发需要的jar包
schema 所有约束文件


导入jar包

进行ico 和 DI 的开发只需要导入spring的核心jar包即可
这里写图片描述

Spring运行,使用commons-logging日志技术
(commons-logging 和 slf4j 都属于统一日志接口, 整合log4j日志实现 )
导入log4j jar


理解 IOC 和 DI

什么是IOC 什么是DI
IOC: 控制反转,用来解决程序对象耦合问题,将程序中原来构建实例对象的权限交与IOC容器处理,当程序需要对象时,找IOC容器获取

DI: 依赖注入,指程序运行中,如果需要调用另一个对象协助时,无须在创建被调用者的对象,而是依赖外部的注入用以使用


传统代码

//测试 @Test public void TestRegist(){        UserServlet userServlet = new UserServlet();        userServlet.regist(); }//表现层public void regist(){        System.out.println("注册用户 + ...");        //传统写法        UserService userService = new UserService ();        userService.regist();}//业务层public void regist(){        System.out.println("注册用户 + ...");        //传统写法        UserDao userDao = new UserDao();        userDao.regist();}

现如今将所有对象,交给 IOC 容器(Spring)来管理

(Spring配置文件通常在src或者WEB-INF下,通常名称叫做 applicationContext.xml )
可以参考下载的spring包 docs目录下的 xsd-config.html 文档
通过applicationContext.xml 配置Spring管理对象

在程序中通过applicationContext接口获取spring工厂对象
ClassPathXmlApplicationContext对象 读取src下的配置文件
FileSystemXmlApplicationContext对象 读取WEB-INF下的配置文件

新建配置文件

<!-- 将对象的创建权,交给容器管理 -->    <bean id="userServlet" class="com.qyf.UserServlet" >        <!-- 返回UserServlet时,同时提供 依赖的UserService对象 -->        <!--             name 属性 对应 对象中 setXXX 方法, 代表对象中含有某个属性            ref 引用了另一个Bean对象id          -->        <property name="userService" ref="userService" />    </bean>    <bean id="userService" class="com.qyf.UserServiceImpl"/>    <bean id="userDAO" class="com.qyf.UserDAOImpl" />

IOC通过工厂,从容器中获取创建完成的对象

@Testpublic void testRegist(){    //从IOC容器中获取工厂对象    ApplicationContext applicationContext = ClassPathXmlApplicationContext("applicationContext.xml");    //从IOC容器工厂中获取所需对象 (通过配置文件中的bean节点的id属性)    UserServlet userServlet = (UserServlet)applicationContext.getBean("userServlet");    //使用对象方法    userServlet.regist();}

在通过 IOC 工厂获取对象时,首先要生成对应配置文件的Set方法,Spring 才会提供所需对象

// 依赖注入 (Spring 在构造 UserServlet对象时,同时将构造好 UserService对象,注入到UserServlet对象中 )private UserService userService;public void setUserService(UserService userService){    this.userService = userService;}

以上是简单的Spring 的使用 ,之后还有关于配置文件的编写,AOP的使用,之后会介绍到。
总而言之 Spring 框架单独使用并没有感觉功能强大,但和其他框架共同使用将会彰显它的魅力。

1 0
原创粉丝点击