Java-Spring 例题 (2)
annotation.dao 包下的 Leg.java
package annotation.dao;
public interface Leg {public void run();
}
annotation.dao 包下的 LegImpl.java
package annotation.dao;
import org.springframework.stereotype.Repository;
// 配置一个 bean,相当于 <bean id=""class="">。@Repository
public class LegImpl implements Leg{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("健步如飞");
}
}
annotation.service 包下的 People.java
package annotation.service;
public interface People {public void run();
}
annotation.service 包下的 PeopleImpl.java
package annotation.service;
import annotation.dao.Leg;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
// 配置一个 bean,相当于 <bean id="peopleimpl" class="">。@Service("peopleimpl")
public class PeopleImpl implements People{
// 主动依据类型注入。@Autowired
private Leg l;
public PeopleImpl(Leg l){this.l=l;}
@Override
public void run() {
// TODO Auto-generated method stub
l.run();
System.out.println("People 构造方法 注入 leg");
}
}
annotation.service 包下的 PeopleImpl1.java
package annotation.service;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import annotation.dao.Leg;
// 配置一个 bean,相当于 <bean id="peopleimpl1" class="">。@Service("peopleimpl1")
public class PeopleImpl1 implements People {
@Autowired
private Leg l1;
public void setL1(Leg l1) {this.l1 = l1;}
@Override
public void run() {
// TODO Auto-generated method stub
l1.run();
System.out.println("People setter 办法 注入 leg");
}
}
test 包下的 TestPeople.java
package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import annotation.service.People;
public class TestPeople {public static void main(String[] args) {ApplicationContext appCon=new ClassPathXmlApplicationContext("annotationContext.xml");
People p=(People)appCon.getBean("peopleimpl");
p.run();
People p1=(People)appCon.getBean("peopleimpl1");
p1.run();}
}
annotationContext.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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 指定要扫描的包这个包下的注解就会失效 -->
<context:component-scan base-package="annotation"/>
<!-- 开启注解的反对 -->
<context:annotation-config/>
</beans>