Spring学习笔记--环境搭建和初步理解IOC

  Spring框架是一个轻量级的框架,不依赖容器就能够运行,像重量级的框架EJB框架就必须运行在JBoss等支持EJB的容器中,核心思想是IOC,AOP,Spring能够协同Struts,hibernate等其他众多的框架.

  下面介绍环境的搭建,首先下载好spring的完整包,我下载的是4.2.5版本的,在elipse中,新建java项目:

    1,导入核心jar包:

    2.在src目录下,创建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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

  到这里配置工作就已经完成了,现在来写第一个例子,来初步理解Spring的IOC思想.

新建实体类Person:

public class Person {

    private String name;
        //必须设置set方法,可以不需要get方法
    public void setName(String name) {
        this.name = name;
    }
    public void eat(){
        System.out.println(name+"吃饭");
    }
}

在beans.xml中的beans标签下,添加以下内容:

<bean name="person" class="com.wang.bean.Person">
        <property name="name" value="张三"/>
</bean>

新建一个测试类,添加测试代码:

    @Test
    public void test(){
        //解析beans.xml,生成管理相应bean的对象
        ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
        Person person =(Person)context.getBean("person");
        person.eat();
    }

控制台打印出:张三吃饭.

  到这里就该思考了.Person对象是由谁创建的?Person对象属性name是怎么设置上的?

  Person对象是由Spring容器创建的,Person对象属性也是通过Spring容器设置上的

  这个过程就叫控制反转(IOC):

    控制的意思:就是由谁来控制对象的创建,传统的应用程序对象是由程序本身控制的,使用Spring后,由Spring容器来控制对象的创建.

    反转:是指程序本身不去创建对象,而是变为被动的接收对象,Person类在这里,是没有new Person()这个动作的,但他接收了来自Spring容器创建好的对象.

    

时间: 2024-10-20 01:10:33

Spring学习笔记--环境搭建和初步理解IOC的相关文章

Nginx+Lua学习笔记-环境搭建

使用的OpenResty 具体教程可以参考:http://jinnianshilongnian.iteye.com/blog/2186270 这里只记录下我自己的环境搭建过程 系统使用的是ubuntu-14.04.1-server-amd64.iso 所有操作都使用了sudo提权... 首先参考http://blog.chinaunix.net/uid-8721861-id-2017178.html解决apt-get install时Media change: please insert the

AngularJS2学习笔记 ——环境搭建(win7、vs2012)

时代在发展,没有纯粹的后端,想要高工资还是要多学习一个的.不废话了,直奔主题. AngularJS发展到现在已出到AngularJS4了.大致分为AngularJS1.x.AngularJS2.AngularJS4 AngularJS1.x 太久远了,而且从AngularJS2版本开始,与AngularJS1.x是java 与 Javascripte的区别. AngularJS2.0目前主流的,如果想学习就从这个版本开始. AngularJS4 最新版本在2.0基础上把动画效果分离,其它功能的改

MongoDB学习笔记~环境搭建

Redis学习笔记已经告一段落,Redis仓储也已经实现了,对于key/value结构的redis我更愿意使用它来实现数据集的缓存机制,而对于结构灵活,查询效率高的时候使用redis就有点不太合适了,对于以文档结构(document)实现存储的MongoDB来实现数据集的查询更合适一些,并且MongoDB有自己的负载均衡机制及MapReduce机制,不公可能分但查询的压力,而且还可以进行分布式计算,这个功能应该是最要命的! 1 组件下载 在previous版本里有32位的,最新版都是64位的,呵

VS2013中Python学习笔记[环境搭建]

前言 Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构. Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言. Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序. Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的

Scala学习笔记-环境搭建以及简单语法

关于环境的搭建,去官网下载JDK8和Scala的IDE就可以了,Scala的IDE是基于Eclipse的. 下面直接上代码: 这是项目目录: A是scala写的: package first import scala.collection.mutable.ListBuffer object A { def main(args: Array[String]) { print("Hello,Scala");//学习程序设计的第一句 println("---");//pr

Maven学习笔记——环境搭建

-------------------------------------------- 本文目录: 一.在windows上安装Maven 二.安装Eclipse插件:m2eclipse -------------------------------------------- 一.在windows上安装Maven   1.确认已安装JDK并配置了相关环境变量. 可以通过命令行中运行一下命令测试:   java -version 如果能够看到版本信息,则表示JDK环境正常. 2.下载Maven 访

MVC学习笔记(01)--初步理解

一.一般意义上的MVC模式 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为以下三个基本部分: 模型(Model):模型用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法."模型"有对数据直接访问的权力,例如对数据库的访问."模型"不依赖"视图"和"控制器",也就是说,模型不关心它会被如何显示或是如何被操作. 视图(View):视图能够实现数据有目的的显示.在视图中

学习笔记:channel的初步理解

channel会阻塞,阻塞的时候系统会继续顺序调用其他goroutine,main()也是一个goroutine,只是最先被执行. 看一个代码: package main import ( "fmt" ) func display(msg string, c chan bool) { fmt.Println(msg) c <- true fmt.Printf("end %s \n", msg) } func main() { c := make(chan bo

Hadoop学习笔记(10) ——搭建源码学习环境

Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步调试呢? 看程序不能调那多痛苦啊,想看跟踪一下变量,想看一下执行路径都难. 所以这里,我们得把这个调试环境搭建起来.Hadoop的主要代码是用java编写的,所以这里就选用eclipse作为环境. Hadoop目录下,本身就可以为作eclipse的一个工程来操作,但这里我不想,我想自己来建一个工程,