zoukankan      html  css  js  c++  java
  • Spring学习笔记--环境搭建和初步理解IOC

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

      具体描述Spring:

        1.轻量级:Spring是非侵入性的,基于Spring来开发的应用中的对象可以不依赖于SpringAPI.

        2.依赖注入(DI)

        3.面向切面编程(AOP)

        4.容器,Spring是一个容器,包含并且管理应用对象的生命周期.

      下面介绍环境的搭建,首先下载好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容器创建好的对象.

        控制反转是一种编程思想,由主动编程变为被动接受.

        IOC的实现是由IOC的容器来实现的.

  • 相关阅读:
    LUA脚本中的方法使用冒号和点,以及调用者使用冒号和点
    Lua类对象的继承
    Lua类对象和类对象的单例
    toLua使用protobuf协议转Lua表
    关于Lua表的弱引用
    Lua-面向对象中函数使用时冒号(:)和点(.)的区别
    Python【day 14-5】sorted filter map函数应用和练习
    Python【day 14-4】sorted filter map+递归文件夹+二分法查找
    Python【day 14-3】二分法查找
    Python【day 14-2】递归遍历文件夹
  • 原文地址:https://www.cnblogs.com/hoobey/p/6013115.html
Copyright © 2011-2022 走看看