第一个spring入门案例

来源:互联网 发布:漫步者煲音箱软件 编辑:程序博客网 时间:2024/05/21 18:47

1. 为什么需要spring?

如果A组件依赖于B组件,那么这样new的话,则硬编码的耦合度高。

使用spring的依赖注入,面向接口编程,防止了硬编码的耦合。

使用spring的aop的面向切面编程,使其更加的具有拓展性。

 

2. 第一个使用spring的案例

package com.huxin.springfirst.dao;public interface Axe {    public void chop();}

 

package com.huxin.springfirst.dao.impl;import com.huxin.springfirst.dao.Axe;public class StoneAxe implements Axe {    public StoneAxe(){    System.out.println("石头已经被创建");    }public void chop() {System.out.println("石头做的东西真是不好啊");}}


 

package com.huxin.springfirst.service;public interface Person {    public void userAxe();}


 

package com.huxin.springfirst.service.impl;import com.huxin.springfirst.dao.Axe;import com.huxin.springfirst.service.Person;public class Chinese implements Person {    private Axe axe;    //public Axe getAxe() {//return axe;//}////public void setAxe(Axe axe) {//this.axe = axe;//}    public Chinese(Axe axe){    System.out.println("我被创建");    this.axe = axe;    }    public void userAxe() {        axe.chop();}public void close(){System.out.println("人的这个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"       xmlns:context="http://www.springframework.org/schema/context"         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">                   <bean id="stoneAxe"  class="com.huxin.springfirst.dao.impl.StoneAxe"/>      <bean id="chinese"  class="com.huxin.springfirst.service.impl.Chinese" destroy-method="close">            <!-- <property name="axe"  ref="stoneAxe"/> -->            <constructor-arg ref="stoneAxe"/>      </bean>     </beans>


 

package com.huxin.springfirst.test;import junit.framework.TestCase;import org.springframework.context.ApplicationContext;import org.springframework.context.support.AbstractApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.huxin.springfirst.service.Person;public class Test extends TestCase {    public void test1(){    AbstractApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");    Person person = (Person) ac.getBean("chinese");    person.userAxe();    ac.registerShutdownHook();    }}


 


 

原创粉丝点击