网络编程-part1-三次握手-四次挥手
2026/7/28 15:45:22
@RepositorypublicclassJsrDAO{publicvoidsave(){System.out.println("JsrDao.save");}}packagecom.torey.beanannotation.jsr;importorg.springframework.stereotype.Service;importjavax.annotation.PostConstruct;importjavax.annotation.PreDestroy;importjavax.annotation.Resource;/** * @ClassName:JsrServie * @Description: * @author: Torey */@ServicepublicclassJsrServie{// @Resource //这里也可以使用@AutowiredpublicJsrDAO jsrDAO;@ResourcepublicvoidsetJsrDAO(JsrDAO jsrDAO){this.jsrDAO=jsrDAO;}@PostConstructpublicvoidinit(){System.out.println("init初始化方法");}@PreDestroypublicvoiddetroy(){System.out.println("detroy销毁方法");}publicvoidsave(){jsrDAO.save();}}@RunWith(BlockJUnit4ClassRunner.class)publicclassTestBeanAnnotationextendsUnitTestBase{publicTestBeanAnnotation(){super("classpath:spring-beanannotation.xml");}@TestpublicvoidtestSave(){JsrServie jsrServie=(JsrServie)super.getBean("jsrServie");jsrServie.save();}}<dependency><groupId>javax.inject</groupId><artifactId>javax.inject</artifactId><version>1</version></dependency>
pom.xml
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.14.RELEASE</version></dependency><dependency><groupId>javax.inject</groupId><artifactId>javax.inject</artifactId><version>1</version></dependency>packagecom.torey.beanannotation.jsr;importorg.springframework.stereotype.Repository;/** * @ClassName:JsrDAO * @Description: * @author: Torey */@RepositorypublicclassJsrDAO{publicvoidsave(){System.out.println("JsrDao.save");}}packagecom.torey.beanannotation.jsr;importjavax.annotation.PostConstruct;importjavax.annotation.PreDestroy;importjavax.inject.Inject;importjavax.inject.Named;/** * @ClassName:JsrServie * @Description: * @author: Torey *///@Service@NamedpublicclassJsrServie{// @Resource //这里也可以使用@AutowiredpublicJsrDAO jsrDAO;//Named("jsrDAO") 如果一个接口有两个实现类,则可以使用@Named// @Resource@InjectpublicvoidsetJsrDAO(@Named("jsrDAO")JsrDAO jsrDAO){this.jsrDAO=jsrDAO;}@PostConstructpublicvoidinit(){System.out.println("init初始化方法");}@PreDestroypublicvoiddetroy(){System.out.println("detroy销毁方法");}publicvoidsave(){jsrDAO.save();}}packagecom.torey.springtest.base;importorg.junit.After;importorg.junit.Before;importorg.springframework.context.support.ClassPathXmlApplicationContext;importorg.springframework.util.StringUtils;/** * @ClassName:UnitTestBase * @Description: * @author: Torey */publicclassUnitTestBase{publicUnitTestBase(){}privateString springXmlPath;privateClassPathXmlApplicationContext applicationContext;publicUnitTestBase(String springXmlpath){this.springXmlPath=springXmlpath;}@Beforepublicvoidbefore(){if(StringUtils.isEmpty(springXmlPath)){springXmlPath="classpath*:spring-*.xml";}applicationContext=newClassPathXmlApplicationContext(springXmlPath.split("[,\\s]"));applicationContext.start();}@Afterpublicvoidafter(){applicationContext.destroy();}publicObjectgetBean(String beanId){returnapplicationContext.getBean(beanId);}}packagecom.torey.springtest.bean;importcom.torey.beanannotation.jsr.JsrServie;importcom.torey.springtest.base.UnitTestBase;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.junit.runners.BlockJUnit4ClassRunner;/** * @ClassName:TestResources * @Description: * @author: Torey */@RunWith(BlockJUnit4ClassRunner.class)publicclassTestBeanAnnotationextendsUnitTestBase{publicTestBeanAnnotation(){super("classpath:spring-beanannotation.xml");}@TestpublicvoidtestSave(){JsrServie jsrServie=(JsrServie)super.getBean("jsrServie");jsrServie.save();}}