文档章节

Spring-简单的实例(一)

_谙久
 _谙久
发布于 2016/01/07 09:34
字数 1046
阅读 102
收藏 1

行业解决方案、产品招募中!想赚钱就来传!>>>

(一)简单的实例

首先需要准备一些jar包:这里我把之后需要用的大概也放进来。


第一步:在eclipse 环境下创建Java project ,在项目目录下创建文件夹spring用来存放与spring相关的jar包。

在src 下创建三个包 :com.xuli.spring.implement  ,  com.xuli.spring.interfance , com.xuli.spring.test  和一个xml 的配置文件:这里可以命名为Beans.xml 。具体如下图所示:

很明显,implement  是用来实现接口,interfance 用来存放接口,test用来测试,Beans.xml用来配置对于Bean的管理。

下面开始写具体的类:

在 com.xuli.spring.interfance 包下定义一个接口:UserBeanimpl 具体代码如下:

package com.xuli.spring.interfance;
/*
 * 定义一个简单的接口
 */
public interface UserBeanimpl {
     void show();
}

在com.xuli.spring.implement 包下建立UserBean类,需要实现UserBeanimpl接口。

package com.xuli.spring.implement;

import com.xuli.spring.interfance.UserBeanimpl;
 /*
  * 实现PersonBean的接口
  */
public class UserBean implements UserBeanimpl{

	@Override
	public void show() {
		// TODO Auto-generated method stub
		System.out.println("hello xuli ");
	}

}

接下来就是配置spring的配置了,在Beans.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"
	 xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	             http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
                 http://www.springframework.org/schema/context 
                 http://www.springframework.org/schema/context/spring-context-2.5.xsd  
                 http://www.springframework.org/schema/tx 
                 http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">



	<bean id="userBean" class="com.xuli.spring.implement.UserBean"></bean>
</beans>

现在我们对XML文件进行简单的解析:


beans —— xml文件的根节点

xmlns ——是XML NameSpace的缩写,因为XML文件的标签名称都是自定义的,自己写的和其他人定义的标签很有可能会重复命名,而功能却不一样,所以需要加上一个namespace来区分这个xml文件和其他的xml文件,类似于java中的package。

xmlns:xsi ——是指xml文件遵守xml规范,xsi全名:xml schema instance,是指具体用到的schema资源文件里定义的元素所准守的规范。即/spring-beans-2.0.xsd这个文件里定义的元素遵守什么标准 。
       xsi:schemaLocation——是指,本文档里的xml元素所遵守的规范。

<bean id="userBean" class="com.xuli.spring.implement.UserBean"></bean>

其中id = “userBean”用来唯一表示该Bean

       class = " com.xuli.spring.implement.UserBean" 用来表示该Bean的来源。

接下来就可以写测试啦,在com.xuli.spring.test中,我们建立一个测试类UserTest:

package com.xuli.spring.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.xuli.spring.implement.UserBean;


public class UserTest {
	@Test
	public void UserTest() {
		// ApplicationContext context = new
		// ClassPathXmlApplicationContext("Beans.xml");
		// 读取配置Bean文件
		ApplicationContext context = new FileSystemXmlApplicationContext("classpath:Beans.xml");
		// 获得在Bean.xml里注入的Bean对象(getBean需要与Bean.xml注入的id名一致)
		UserBean user = (UserBean) context.getBean("userBean");
		// 调用其对象内的方法
		user.show();
	}
}

ApplicationContext初始化

         ApplicationConText ctx = new ClassPathXmlApplicationContext(“配置文件地址”);

         ApplicationConText ctx = new FileSystemXmlApplicationContext(“配置文件地址”);

         ApplicationConText ctx = new AnnotationConfigApplicationContext(配置类);

ClassPathXmlApplicationContextFileSystemXmlApplicationContext主要的区别是如果不显示的指定资源型前缀,将分别将路径解析为类路径和文件系统路径。在J2SE项目中使用Spring时需要使用上面的ApplicationContext初始化代码,在main方法中初始化或在静态类型中初始化。

ApplicationContext 在初始化上下文时就实例化所有单例的 Bean。(顺便提一下,是Bean可以不是单实例的,这个等到Bean的作用域大的时候再说)

为什么是单例的Bean?

spring Bean生命周期(这里只是提下概念后面会深入验证)

1.Bean的作用域可以通过Bean标签的scope属性进行设置,Bean的作用域包括:
默认情况下scope="singleton",那么该Bean是单例,任何人获取该Bean实例的都为同一个实例;
scope="prototype",任何一个实例都是新的实例;
scope="request",在WEB应用程序中,每一个实例的作用域都为request范围;
scope="session",在WEB应用程序中,每一个实例的作用域都为session范围;

接下来就可以运行Test方法得出结果啦:

简单的spring 框架第一个实例就OK啦,具体概念之后会说,这里大家只需要有个大概的认知。





_谙久
粉丝 6
博文 75
码字总数 45070
作品 0
徐汇
程序员
私信 提问
加载中
请先登录后再评论。
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
5.9K
18
我的架构演化笔记 功能1: 基本的用户注册

“咚咚”,一阵急促的敲门声, 我从睡梦中惊醒,我靠,这才几点,谁这么早, 开门一看,原来我的小表弟放暑假了,来南京玩,顺便说跟我后面学习一个网站是怎么做出来的。 于是有了下面的一段...

强子哥哥
2014/05/31
976
3
Swift百万线程攻破单例(Singleton)模式

一、不安全的单例实现 在上一篇文章我们给出了单例的设计模式,直接给出了线程安全的实现方法。单例的实现有多种方法,如下面: class SwiftSingleton { } 这段代码的实现,在shared中进行条...

一叶博客
2014/06/20
3.3K
16
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.2K
1
DAAttributedStringUtils

DAAttributedStringUtils 包含 NSAttributedStrings 的一些常用方法,包括: 使用类 printf 的格式化方法创建 NSAttributedString 实例 一个简单的 UI Label 类用来显示 NSAttributedString...

匿名
2013/02/18
231
0

没有更多内容

加载失败,请刷新页面

加载更多

认识Node

什么是Node? Node 是 JavaScript 的一种运行环境。可以使 JS 代码不依赖浏览器也可以执行。他俩的差异如下: 两个运行环境都包含了 ECMScript 。另一方面 JavaScript 包含了 BOM 和 DOM。 ...

长臂猿猴
21分钟前
13
0
正则表达式中的非捕获组是什么? - What is a non-capturing group in regular expressions?

问题: 非捕获组(即(?:) )如何在正则表达式中使用,它们有什么用? 解决方案: 参考一: https://stackoom.com/question/Ejkl/正则表达式中的非捕获组是什么 参考二: https://oldbug.net...

技术盛宴
22分钟前
6
0
他在国外演讲时说,学Python只要看答案做完这几十道题,就足够了

你想学Python?其实很简单,因为Python本身就是一门比较简单的编程语言。 你要做的也就是看着答案做完这几十道题就可以了,不管你是不是有编程基础,因为答案摆在那儿,你不可能不会做。 为什...

python小天
22分钟前
0
0
「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制

0 复习 代理模式 代理模式,可以为目标类添加额外功能。 Spring 动态代理 定义目标类对象 定义额外功能,增强。实现Spring内置的接口 配置增强类 定义切入点 编织组装 增强类型 前置增强 Me...

鹿老师的Java笔记
41分钟前
21
0
OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:h...

红模仿_红胖子
59分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部