文档章节

Spring配置

开源俱乐部
 开源俱乐部
发布于 2014/06/22 11:48
字数 838
阅读 116
收藏 0

一、Spring配置步骤

(1)导入spring的jar包

        Spring的jar包很多,我们这里只需要必须的包和Spring的依赖包,其它的根据需要再加。这些jar包分别是:

        aopalliance-1.0.jar
        commons-logging-1.1.1.jar
        spring-aop-3.1.1.RELEASE.jar
        spring-asm-3.1.1.RELEASE.jar
        spring-beans-3.1.1.RELEASE.jar
        spring-context-3.1.1.RELEASE.jar
        spring-core-3.1.1.RELEASE.jar
        spring-expression-3.1.1.RELEASE.jar

        其中,”commons-logging-1.1.1.jar“是Spring 的依赖包。

(2)创建类

        创建一个Hello.java类,以便后续测试能够进行对象的创建进行测试,内容如下:

package com.uni2uni.spring.model;
public class Hello {
 public String hello(){
  return "Hello,world!";
 }
}

(3)创建spring-conf.xml

        在src目录下面创建spring-conf.xml。(注:名字和路径可自定义)

        ”spring-conf.xml“文件内容如下:

<?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/spring-beans-3.0.xsd
">

 <bean id="hello" class="com.uni2uni.spring.model.Hello" />
</beans>

(4)测试配置是否正确

        创建测试类,内容如下:

package com.uni2uni.spring.unit;
import junit.framework.TestCase;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.uni2uni.spring.model.Hello;
public class TestSpring extends TestCase{
 private BeanFactory factory=new ClassPathXmlApplicationContext("spring-conf.xml");
 
 public void TestHello(){
  
  Hello hello = (Hello)factory.getBean("hello");
  //或者像下面这样调用也可以        
  //Hello hello = factory.getBean("hello",Hello.class);
  System.out.println(hello.hello());
 }
}

        然后运行单元测试,如果能够输出“Hello,world!”则证明Spring配置正确。        

二、知识扩展

(1)在Maven项目中配置spring依赖

        在“pom.xml”文件中加入如下代码:

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context</artifactId>
   <version>3.1.1.RELEASE</version>
</dependency>

(2)scope属性及作用域介绍

        在本例中的“spring.xml”文件中有如下代码:

<bean id="hello" class="com.uni2uni.spring.model.Hello" />

        这行代码省略了scope属性,它等效于下面的代码:

<bean id="hello" class="com.uni2uni.spring.model.Hello" scope="singleton" />

        scope属性可选值有:“singleton”(默认)、“prototype”、“request”、“session”、“global session”。

        singleton:默认值,为单例。Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。

        prototype:多例。作用域为部署的bean,每一次请求(将其注入到另一个bean中,或者以程序的方式调用容器的 getBean()方法)都会产生一个新的bean实例,相当与一个new的操作,对于prototype作用域的bean,有一点非常重要,那就是Spring不能对一个prototype bean的整个生命周期负责,容器在初始化、配置、装饰或者是装配完一个prototype实例后,将它交给客户端,随后就对该prototype实例不闻不问了。

        request:表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效。

        session:session作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效。

        global session:类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的web应用中才有意义。Portlet规范定义了全局Session的概念,它被所有构成某个 portlet web应用的各种不同的portlet所共享。在global session作用域中定义的bean被限定于全局portlet Session的生命周期范围内。如果你在web中使用global session作用域来标识bean,那么web会自动当成session类型来使用。

        Spring2.0在WebApplicationContext中还为Bean添加了三个新的作用域:request作用域、session作用域和global session作用域。而在非Web应用的环境下,Bean只有singleton和prototype两种作用域。


© 著作权归作者所有

共有 人打赏支持
下一篇: MyBatis配置
开源俱乐部
粉丝 10
博文 39
码字总数 31422
作品 0
朝阳
架构师
私信 提问
告诉你,Spring Boot 真是个牛逼货!

现在 Spring Boot 非常火,各种技术文章,各种付费教程,多如牛毛,可能还有些不知道 Spring Boot 的,那它到底是什么呢?有什么用?今天给大家详细介绍一下。 Spring Boot 的背景 了解 Spri...

技术小能手
10/12
0
0
spring boot 1.5.4 入门和原理(二)

1 spring boot入门 1.1 环境准备 JDK 7及以上 eclipse开发工具 项目管理工具Maven 本文采用、RELEASE(或1.5.2.RELEASE)调试通过。 spring-boot相关项目源码, 码云地址:https://git.oschi...

wyait
2017/09/18
0
0
Spring MVC 到 Spring Boot 的简化之路

背景 从Servlet技术到Spring和Spring MVC,开发Web应用变得越来越简捷。但是Spring和Spring MVC的众多配置有时却让人望而却步,相信有过Spring MVC开发经验的朋友能深刻体会到这一痛苦。因为...

别打我会飞
10/21
0
0
深入 Spring Boot : 快速集成 Dubbo + Hystrix

背景 Hystrix 旨在通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以...

小致dad
07/02
0
0
吐血整理 20 道 Spring Boot 面试题,我经常拿来面试别人!

面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望。 下面,我给大家总结下有...

Java技术栈
10/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

android分辨率,屏幕尺寸,屏幕密度关系

名词定义分辨率分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800、720×1280、1080×1920等。720×1280表示此屏幕在宽度方向有720个像素...

GoldenVein
9分钟前
0
0
inux驱动的异步通知(kill_fasync,fasync)---- 驱动程序向应用程序发送信号

===========================应用程序========================= #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <poll.h> #include <sign......

天王盖地虎626
10分钟前
0
0
使用android studio时,ADB连接不上手机可能性之一

问题描述:as是通过adb连接手机进行调试了,如果电脑装了鲁大师,360等软件,可能会存在adb被这些软件占用的情况,所以会连接不上手机。这种解决方案有很多,比如通过任务管理器查看是谁占用...

白话
12分钟前
0
0
node实践--node集体管理工具PM2入门指南

来自PM2实用入门指南 简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。 下面就对PM2进行入门性的介绍,基本...

spinachgit
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部