`
Ydoing
  • 浏览: 101060 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring入门实例

 
阅读更多

Spring最核心的概念就是“依赖注入”。所谓依赖注入就是你需要什么对象,Spring容器就帮你实例化这个对象,然后注入到你的应用程序中。这样你就不用自己实例化依赖对象,不但简化了开发,还解耦了各模块的依赖。下面我来展示一个实例,比如Person对象要使用Computer,必须依赖Computer这个对象。使用Spring,使你不用自己new对象,Spring容器会帮你在需要的时候注入Computer这个对象。在Spring里,任何java对象都可以当做bean。

Person类:

package com.ydoing.demo;
public class Person {
    //依赖Computer对象
    private Computer computer;

   //Spring容器会自动注入computer
    public void setComputer(Computer computer) {
        this.computer = computer;
    }
    public void useComputer() {
        computer.start();
    }
}

Computer类:

package com.ydoing.demo;

//要注入的bean
public class Computer {
    public void start() {
        System.out.println("computer run");
    }
}

bean的配置:

<?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-3.0.xsd">
    <bean id="computer" class="com.ydoing.demo.Computer" />
    <bean id="person" class="com.ydoing.demo.Person">
        <property name="computer" ref="computer" />
    </bean>
</beans> 

测试类:

package com.ydoing.demo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
        Person person = ctx.getBean("person", Person.class);
        person.useComputer();
    }
}

console输出:

七月 19, 2015 9:25:05 上午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@64fe7a67: startup date [Sun Jul 19 09:25:05 CST 2015]; root of context hierarchy
七月 19, 2015 9:25:05 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [beans.xml]
computer run

总结:
从以上程序我们看出,没有出现任何new关键字,person对象需要computer对象时,不需要new。Spring会自动注入computer这个bean到person中。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics