SpringAbstractBeanTest_applicationContext.xml
package com.lin.test;
import static org.junit.Assert.*;
import java.util.Date;
import javax.annotation.Resource;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
/*******************************************************************************
* SpringAbstractTest.java Created on 2014年7月23日
* Author: linfenliang
* Description:
* Version: 1.0
******************************************************************************/
public class SpringAbstractTest {
ApplicationContext context = new ClassPathXmlApplicationContext("SpringAbstractBeanTest_applicationContext.xml");
@Test
public void test() {
BusinessService service = (BusinessService) context.getBean("businessService");
AccstatusProtocol protocol = new AccstatusProtocol();
protocol.cmd = 0x02;
service.insert(protocol );
service = (BusinessService) context.getBean("businessService");
protocol.cmd = 0x03;
service.insert(protocol );
}
}
//@Component("protocol")
class Protocol{
public Protocol() {
System.out.println("new Protocol");
}
@Autowired
protected byte header = 0x5b;
@Autowired
protected String mid;
@Autowired
protected int serialNumber;
@Autowired
protected byte cmd;
@Autowired
protected byte checkSum;
@Autowired
protected byte tail = 0x5d;
}
//@Component("accstatusProtocol")
class AccstatusProtocol extends Protocol{
public AccstatusProtocol() {
System.out.println("new AccstatusProtocol");
}
@Autowired
protected byte status = 0x01;
@Autowired
protected Date gathertime;
@Autowired
protected String cellTower;
@Override
public String toString() {
return ReflectionToStringBuilder.toString(this);
}
}
@Repository("businessDao")
@Scope(value="singleton")
class BusinessDao{
public BusinessDao() {
System.out.println("new BusinessDao");
}
void insert(AccstatusProtocol protocol){
System.out.println("BusinessDao insert:"+protocol);
}
}
@Service("businessService")
@Scope(value="singleton")
class BusinessService{
public BusinessService() {
System.out.println("new BusinessService");
}
@Autowired
private BusinessDao businessDao;
void insert(AccstatusProtocol protocol){
businessDao.insert(protocol);
System.out.println("BusinessService insert:"+protocol);
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
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:annotation-config/>
<!-- 注解扫描路径 -->
<!--
-->
<context:component-scan base-package="com.lin.test" />
</beans>