spring入门——注入demo

spring实例化bean有两种方式,第一种是通过配置文件注入,例如(这里只介绍通过setter方式)

<bean id="a" class="com.demo.A"></bean>

如果有多个bean需要依赖的话,则需要这么写:

<bean id="a" class="com.demo.A">
    <property name="b" ref="b"></property>
</bean>
<bean id="b" class="com.demo.B"></bean>

接下来就要编写实现类了:

public class A {
    
    private B b;

    public B getB() {
        return b;
    }

    public void setB(B b) {
        this.b = b;
    }
    public void out(){
        b.out();
    }
}
public class B {

    public void out(){
        System.out.println("hello world");
    }
}
public class Test {
    
    private A a;

    public A getA() {
        return a;
    }

    public void setA(A a) {
        this.a = a;
    }
        
        a.out();
    
}        

 

 

第二种就是通过注解,这种方式可以极大的简化配置文件,这里我只说一种注解demo

在需要spring注入的类中加入注释@Repository、@Service等(如果忘记加入此注释,运行时会出现java.lang.NullPointerException异常),这是我们还要注意,因为要在bean A中调用bean B,因为我们是再调用A的时候才会自动注入A,所以此时B是不会被注入的,这时执行到b.out()时就会出现java.lang.NullPointerException异常,但只要我们在声明B的时候加上@Autowired就可以避免这种情况发生

@Service
public class A {
    @Autowired
    private B b;

    public B getB() {
        return b;
    }

    public void setB(B b) {
        this.b = b;
    }
    public void out(){
        b.out();
    }
    
}
@Repository
public class B {

    public void out(){
        System.out.println("hello world");
    }
}
public class Test {
    
    private A a;

    public A getA() {
        return a;
    }

    public void setA(A a) {
        this.a = a;
    }
        
        a.out();
    
} 

 

接下来就需要修改配置文件了,在学习spring的过程中经常被一些配置文件弄的晕头转向,不同版本的spring配置内容也不尽相同,这里我列举必须的配置信息(spring版本为3.2.4)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans" 
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
 4     xmlns:context="http://www.springframework.org/schema/context" 
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans 
 6     http://www.springframework.org/schema/beans/spring-beans.xsd    
 7         http://www.springframework.org/schema/context 
 8         http://www.springframework.org/schema/context/spring-context-3.1.xsd">
9 <context:component-scan base-package="com" /> 10 </beans>

 

posted @ 2013-09-13 17:48  s413574930  阅读(186)  评论(0编辑  收藏  举报