文档章节

Spring配置

开源俱乐部
 开源俱乐部
发布于 2014/06/22 11:48
字数 838
阅读 115
收藏 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两种作用域。


© 著作权归作者所有

共有 人打赏支持
开源俱乐部
粉丝 10
博文 39
码字总数 31422
作品 0
朝阳
架构师
Spring MVC 到 Spring BOOT的简化之路

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

临江仙卜算子
05/09
0
0
吐血整理 20 道 Spring Boot 面试题,我经常拿来面试别人!

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

Java技术栈
10/15
0
0
Spring Boot2.X来临,扒一扒Spring家族的前世今生

当前互联网技术盛行,以Spring 框架为主导的Java 互联网技术成了主流,而基于Spring 技术衍生出来的Spring Boot,采用了“约定优于配置”的思想,极大地简化了Spring 框架的开发。 随着近些年...

异步社区
08/01
0
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

没有更多内容

加载失败,请刷新页面

加载更多

20181018 上课截图

![](https://oscimg.oschina.net/oscnet/49f66c08ab8c59a21a3b98889d961672f30.jpg) ![](https://oscimg.oschina.net/oscnet/a61bc2d618b403650dbd4bf68a671fabecb.jpg)......

小丑鱼00
41分钟前
1
0
WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
14
2
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部