1、首先spring的主要思想,就是依赖注入。简单来说。就是不须要手动new对象,而这些对象由spring容器统一进行管理。

2、样例结构

如上图所看到的,採用的是mavenproject。

2、pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>SpringExample001</groupId><artifactId>SpringExample001</artifactId><version>0.0.1-SNAPSHOT</version><dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.2.5.RELEASE</version> </dependency>
</dependencies>
</project>

3、spring.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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <bean id="do" class="com.test.pro.Do"/> </beans>

4、Do.java

package com.test.pro;public class Do {public void speaking(){System.out.println("speaking.......");}
}

5、測试类

package com.test.pro;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubApplicationContext ctx=new ClassPathXmlApplicationContext("spring.xml");Do did=(Do)ctx.getBean("do");did.speaking();}}

6、输出

7、分析

我们能够看到,在核心的spring配置文件里的spring.xml中仅仅有一句话:<bean id="do" class="com.test.pro.Do"/>,这句话指明的是有一个bean文件。名称为do,其类的地址是com.test.pro.Do。

然后就是我们的測试类里面的一段话:

ApplicationContext ctx=new ClassPathXmlApplicationContext("spring.xml");
Do did=(Do)ctx.getBean("do");
did.speaking();

这里表示声明一个上下文类,这个上下文类装载了配置文件,注意,假设这里不是採用mavenproject的话,一定要注意spring.xml的相对地址。假设实在不确定相对地址是什么。能够採用绝对地址的方式。比如:

ApplicationContext ctx=new ClassPathXmlApplicationContext("file:H:/spring.xml");

然后就是利用上下文对象来获得在配置文件里声明过的bean的演示样例,而且能够直接调用。

那么这个bean文件是什么时候实例化的,假设bean的scope是prototype的,则该Bean的实例化是在第一次使用该Bean的时候进行实例化 ,能够參考这篇文章:http://www.iteye.com/problems/93479

转载于:https://www.cnblogs.com/blfbuaa/p/7351086.html

【spring教程之中的一个】创建一个最简单的spring样例相关推荐

  1. Ubuntu18.04 LTS Melodic ROS 教程:使用URDF创建一个虚拟机器人模型

    Ubuntu18.04 LTS Melodic ROS 教程:使用URDF创建一个虚拟机器人模型 Building a Visual Robot Model with URDF from Scratc ...

  2. java全景图片生成_[Java教程]使用Javascript来创建一个响应式的超酷360度全景图片查看幻灯效果...

    [Java教程]使用Javascript来创建一个响应式的超酷360度全景图片查看幻灯效果 0 2015-07-23 18:00:14 360度的全景图片效果常常可以用到给客户做产品展示,今天这里我们 ...

  3. ACMNO.13求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。 输入 n 输出 和 样例输入 5 样例输出 153

    题目描述 求Sn=1!+2!+3!+4!+5!+-+n!之值,其中n是一个数字. 输入 n 输出 和 样例输入 5 样例输出 153 来源/分类 C语言 题目截图: 思路: 首先要想到使用两个for循 ...

  4. struts2官方 中文教程 系列一:创建一个struts2 web Application

    先贴了本帖地址,以免被爬  http://www.cnblogs.com/linghaoxinpian/p/6898779.html 本教程将会通过安装struts2框架来创建一个简单的应用程序. 虽 ...

  5. ruby on rails_最终的中级Ruby on Rails教程:让我们创建一个完整的应用程序!

    ruby on rails 由Domantas G (By Domantas G) There are plenty tutorials online which show how to create ...

  6. 手动添加linux用户,Linux入门教程:如何手动创建一个Linux用户

    想到要创建一个用户的时候,我们马上想到了useradd命令或者在图像下进行建立,但是这样并没有真正的了解linux用户的生成步骤,我们知道在linux下"一切皆文件",那么对于一个 ...

  7. [Minecraft]基于Forge的1.8.9MOD开发教程——第二讲:创建一个空Mod

    在你的src/main/java下新建一个包,我这里是net.csdn.mymod(命名规范:域名倒写+Mod名) 创建一个名为MainClass的类,代码如下.目前不需要看懂,之后我会详细解释: 1 ...

  8. WPF教程(一)---创建一个WPF程序基础知识

    1.前言: 这篇主要讲WPF的开发基础,介绍了如何使用Visual Studio 2019创建一个WPF应用程序. 首先说一下学习WPF的基础知识: 1) 要会一门.NET所支持的编程语言--例如C# ...

  9. 【原创】一个简单的StreamInsight样例分析:MarketMonitor

    MarketMonitor是2009年微软专业开发者大会上StreamInsight小组资深程序经理Torsten Grabs演讲中的第一个StreamInsight Demo.这个Demo演示了如何 ...

最新文章

  1. Our Proof : Page Scraping : Website Data Extraction : Data Mining Analytics : Connotate.com
  2. 实时音视频互动系列(上):又拍云UTUN网络详解
  3. Java并发编程——线程池的使用
  4. python安装pymssql
  5. 隐私安全的必答题,网易云信如何解?
  6. 执行存储过程出现:不是有效的标识符。
  7. Java学习路线详解
  8. JS/PHP中,数组与字符串的转换,这次总算是记住了
  9. [英语]工作邮件中超实用的100句英文
  10. 第1章 通信网概述作业
  11. 计算机网络技术基础试卷2,《计算机网络基础考试2》试题与答案
  12. 使用预计算实时全局光照优化照明-设置场景
  13. 源码剖析panic与recover,看不懂你打我好了!
  14. 谷歌大牛Jeff Dean单一作者撰文:深度学习研究的黄金十年
  15. 违反mysql三范式_违反数据库第三范式引发的一个问题
  16. router vue 页签文字_vueRouter点击打开新页签
  17. 硬盘的主流技术,最新的硬盘技术
  18. 杂谈---2014的第一篇博客
  19. 儿童玩具和儿童用品美国CPC认证ASTM测试CPSIA标准大合集
  20. 【软件质量与软件测试 软件质量工程体系】

热门文章

  1. scala break continue
  2. WINDOWS SERVER 2003 组策略应用
  3. [转]新版.Net开发必备十大工具
  4. PHP 使用 Memcached
  5. Netty实战七之EventLoop和线程模型
  6. Hibernate关联关系映射
  7. 连载《一个程序猿的生命周期》-27、新招的两位“高管”相继离职
  8. 【转】centos 6.2 安装mysql-5.5.17
  9. LiveData使用和生命感知原理
  10. Amazon EC2云端服务器的使用方法