Spring框架同样支持注解
实现步骤如下:
-
第一步
创建配置文件,内容如下:
<?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="b" class="pers.lee.domain.B">-->
<!-- </bean>-->
<!-- <bean id="a" class="pers.lee.domain.A">-->
<!-- <property name="b" ref="b"/>-->
<!-- </bean>-->
<context:component-scan base-package="pers.lee.domain"/>
</beans>
加入<context:component-scan>标签,它能够自动扫描base-package定义的包中的类,寻找带有@Component、@Service、@Repository、@Controller的类,把这些类的实例对象加入到容器中去。
-
第二步
为实体类加入注解
@Component("a")
public class A {
@Autowired
private B b;
// @Autowired
public void setB(B b) {
this.b = b;
}
public void print () {
System.out.println("我是A类的方法print()");
System.out.println("这是A类中的成员变量b:" + b);
}
}
@Component("b")
public class B {
@Override
public String toString() {
return "我是B类:" + super.toString();
}
}
-
第三步
测试
public class MyTest {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
A a = applicationContext.getBean("a", A.class);
a.print();
}
}
依然是从容器中取出名字叫做“a”的对象