Spring框架第一篇之简单入门

一、下载Spring的jar包

通过http://repo.spring.io/release/org/springframework/spring/地址下载最新的Spring的zip包,当然,如果你是在使用maven工程的话,可以不用下载Zip包,可以直接在maven工程的pom.xml文件中添加Spring的依赖即可。

二、创建工程导入jar包

第一篇的内容记录一些入门知识点,所以只需要导入几个必要的基础包则可,这里项目只导入Spring的以下几个包:

spring-core-4.3.9.RELEASE.jar
spring-beans-4.3.9.RELEASE.jar
spring-context-4.3.9.RELEASE.jar
spring-expression-4.3.9.RELEASE.jar

除此之外,还需要导入两个日志jar包:

log4j-1.2.15.jar
commons-logging-1.1.3.jar

三、创建测试工程

整个工程目录如下图所示:

3.1 编写ISomeService接口类

package com.ietree.spring.basic.ioc;

/**
 * 接口类
 *
 * @author Root
 */
public interface ISomeService {

    void doSomeThing();

}

3.2 编写SomeServiceImpl类,实现ISomeService

package com.ietree.spring.basic.ioc;

/**
 * 实现类
 *
 * @author Root
 */
public class SomeServiceImpl implements ISomeService {

    public SomeServiceImpl() {
        System.out.println("执行无参构造器,创建SomeServiceImpl对象");
    }

    @Override
    public void doSomeThing() {
        System.out.println("执行doSomeThing()方法...");
    }

}

3.3 编写applicationContext.xml配置文件

其中xml中的schema配置可以直接从Spring官方文档中复制(spring-framework-4.3.9.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html)

所以将schema复制之后需要配置对应的bean,这里的id可以随便命名,只需要对应需要创建的类即可,之后需要根据配置的bean的id值来获取对象,不要再通过最早的那种通过new Object()的方式获取了。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--
           注册Service
           这里相当于容器做了SomeServiceImpl myService = new SomeServiceImpl();
     -->
    <bean id="myService" class="com.ietree.spring.basic.ioc.SomeServiceImpl"/>

</beans>

以上步骤配置完成之后,Spring的环境就算简单搭建完成了,现在来测试一下。

四、获取对象的几种方式

1、通过new Object();方式获取对象

@Test
public void test01() {
    ISomeService service = new SomeServiceImpl();
    service.doSomeThing();
}

2、通过ClassPathXmlApplicationContext对象加载Spring的配置文件,采用getBean的方式获取对象

@Test
public void test02() {

    // 创建容器对象,加载Spring配置文件
    // ClassPathXmlApplicationContext会从类路径下查找配置文件
    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

    ISomeService service = (ISomeService) ac.getBean("myService");
    service.doSomeThing();
}

3、通过FileSystemXmlApplicationContext对象加载Spring的配置文件,采用getBean的方式获取对象

@Test
public void test03() {

    // FileSystemXmlApplicationContext会从项目的根下查找配置文件,或者从当前系统的D盘根目录下查找配置文件
    ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");

    ISomeService service = (ISomeService) ac.getBean("myService");
    service.doSomeThing();
}

4、通过BeanFactory对象加载Spring的配置文件,采用getBean的方式获取对象

   // ApplicationContext与BeanFactory容器的区别:
    // 1)ApplicationContext容器在进行初始化时,会将其中的所有Bean(对象)进行创建。
    //        缺点:占用系统资源(内存、CPU等)
    //        优点:响应速度快
    // 2)BeanFactory容器中的对象,在容器初始化时并不会被创建,而是在真正获取该对象时才被创建。
    //        缺点:响应速度慢
    //        优点:不多占用系统资源(内存、CPU等)
    @Test
    public void test04() {

        // 创建容器对象,加载Spring配置文件
        BeanFactory bf = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));

        ISomeService service = (ISomeService) bf.getBean("myService");
        service.doSomeThing();
    }
时间: 2024-11-04 18:08:54

Spring框架第一篇之简单入门的相关文章

Spring框架第一篇之Bean的装配

一.默认装配方式 代码通过getBean();方式从容器中获取指定的Bean实例,容器首先会调用Bean类的无参构造器,创建空值的实例对象. 举例: 首先我在applicationContext.xml配置文件中配置了一个bean: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" x

Spring框架第一天

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption

Python Web框架【Django框架第一篇基础】

Django框架第一篇基础[DjangoMTV模式] 老师博客[www.cnblogs.com/yuanchenqi/articles/6811632.html] 同学博客:http://www.cnblogs.com/haiyan123/p/7701412.html Django官网:https://www.djangoproject.com/download/ 一.安装Django DjangoMTV模式 Django的MTV模式本质是各组件之间为了保持松耦合关系,Django的MTV分别代

Python之路,第一篇:Python入门与基础

第一篇:Python入门与基础 1,什么是python? Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 2,python的特征: (1)易于学习,易于利用: (2)开发效率高,内建众多数据类型,强大的标准库支持: (3)高级语言: (4)可移植性,基于开放源代码特性 (5)可扩展性,如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用. (6)可嵌入,你可以将Python嵌入到C

轻量级ORM框架——第一篇:Dapper快速学习

我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db,而且市面上的orm框架有很多,其中有一个框架 叫做dapper,而且被称为the king of ORM. 一:为什么选择Dapper 1. 性能优越: 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco serialization的过程中所表现的性能,我们发现dapper是第二名, 当然第一名谁也无法超越,越底层的当然久越快,同时也就越麻烦.就好

【SSH三大框架】Spring基础第一篇:搭建Spring环境、实例化Bean、管理Bean的作用域以及Bean的生命周期

一.搭建Spring环境: 在lib目录下引入jar包,然后add to path,这就不过多说了. 二.实例化Bean的三种方式: 首先,我们先写两个java类: 接口类: public interface PersonService { public abstract void save(); } 实现类: public class PersonServiceBean implements PersonService { @Override public void save(){ Syste

【H3 BPM工作流程管理产品小故事】第一篇 配置简单流程

某天,Boss找到了信息部工程师小明.Boss:咱们新上了H3 BPM,你研究研究把现在的采购申请流程加上去吧,这是采购申请单.小明:好嘞 采购申请单 小明回去后拿着表单想了想,开始着手配置.他找到了 "后台系统-流程模型"模块.首先建立了目录"物资"(小明:万一BOSS明天想把报废也加进来呢),在"物资"目录下建立了流程"采购申请".系统自动在流程下创建了3个子目录:数据模型.默认表单.采购申请. 流程菜单 接下来小明看不懂

Django框架第一篇基础

一个小问题: 什么是根目录:就是没有路径,只有域名..url(r'^$') 补充一张关于wsgiref模块的图片 一.MTV模型 Django的MTV分别代表: Model(模型):和数据库相关的,负责业务对象与数据库的对象(ORM) Template(模板):放所有的html文件   模板语法:目的是将白变量(数据库的内容)如何巧妙的嵌入到html页面中 View(视图):负责业务逻辑,并在适当的时候调用Model和Template 此外,Django还有一个URL分发器.它的作用是将一个个U

[c3p0] 第一篇:简单认识c3p0

前言 译文是根据c3p0-0.9.5.1版本的官方文档,加上自己的理解,整理翻译而成.能力有限,译文内容如果有误或是理解有偏差,还请大家纠正! 什么是c3p0 c3p0是一个非常好用的jar类库,根据jdbc3规范和jdbc2规范的标准扩展部分定义实现,使得传统的JDBC更适合企业级开发.在0.9.5版本中,c3p0完全支持jdbc4规范. c3p0提供了几个有用的服务: 1.获取数据库连接的方式,由传统的基于DriverManager的JDBC驱动获取转换为新的javax.sql.DataSo