Spring 学习(一)

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通过工厂,从容器中获取创建完成的对象

@Test
public 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 框架单独使用并没有感觉功能强大,但和其他框架共同使用将会彰显它的魅力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值