`

在Client端 普通jar项目运行@Autowired的 junit test

 
阅读更多

 

 参考URL:  http://forum.spring.io/forum/spring-projects/container/104173-runwith-componentscan-does-not-work

 

import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.support.AnnotationConfigContextLoader;

@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes={AppConfig.class})
public abstract class BaseTestClass extends AbstractJUnit4SpringContextTests  {

}

 

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.client.RestTemplate;

@Configuration
@ComponentScan(basePackages = "com.accenture", excludeFilters = @Filter(type = FilterType.ANNOTATION, value = Configuration.class))
public class AppConfig {
	
	@Bean
	public RestTemplate restTemplate() {
	   return new RestTemplate();
	}
	
}

 

 

import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import com.accenture.dataexchange.api.client.DataExchangeClientService;

public class AppTest extends BaseTestClass {
	
	@Autowired
	private DataExchangeClientService service;
	
	@Test
	public void test() {
		System.out.println("hello");
	}
	
}

 

 

 

如果有数据库操作  参照下面的 配置

@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes={AppConfig.class, DataSourceConfig.class})
@TransactionConfiguration(transactionManager = "txManager")
public abstract class BaseTestClass extends AbstractTransactionalJUnit4SpringContextTests {

}

 

分享到:
评论

相关推荐

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    `@Autowired`和`@Bean`是两个关键注解,它们在实现DI时起着重要作用。让我们深入探讨这两个注解的工作原理,以及它们在注入bean时的顺序。 `@Autowired`注解由Spring提供,用于自动装配bean的依赖。当我们在字段、...

    SSH笔记-通过@Autowired配置注入关系

    在实际项目中,`@Autowired`的使用大大提高了开发效率,减少了手动管理依赖的繁琐工作。它使得代码更加整洁,降低了组件之间的耦合度,同时也方便了单元测试。在SSH(Spring、Struts、Hibernate)这样的经典企业级...

    (转)Spring中@Autowired注解和@Resource注解的区别

    在阅读《Spring中Autowired和Resource的区别.docx》文档时,可以深入探讨这两个注解的内部实现原理,以及在实际项目中的最佳实践。通过源码分析,我们可以了解到Spring如何解析这些注解并执行依赖注入的过程,这有助...

    Spring@Autowired注解与自动装配.rar

    在Spring框架中,`@Autowired`注解是一个关键特性,用于实现依赖注入(Dependency Injection,简称DI)。依赖注入是设计模式中的一个重要概念,它有助于降低组件之间的耦合度,提高代码的可测试性和可维护性。`@...

    Spring使用@Autowired注解自动装配

    在Spring框架中,`@Autowired`注解是一个关键特性,用于简化依赖注入的过程。依赖注入是一种设计模式,它允许我们解耦代码,提高模块的可测试性和可维护性。在这个主题中,我们将深入探讨`@Autowired`的工作原理、...

    HibernateDaoSupport 与@Autowired

    在Java开发领域,尤其是Spring框架的应用中,`HibernateDaoSupport`和`@Autowired`是两个非常重要的概念。它们分别代表了Hibernate对DAO层的支持以及Spring框架的依赖注入机制。接下来,我们将深入探讨这两个知识点...

    【Java面试】@Resource 和 @Autowired 的区别.doc

    在使用 @Autowired 注解时,如果在 Spring IOC 容器里面存在多个相同类型的 Bean 实例,那么 Spring 启动的时候,会提示一个错误,大概意思原本只能注入一个单实例 Bean,但是在 IOC 容器里面却发现有多个,导致注入...

    Spring In Action 使用@Autowired 和@ Resource 自动装配Bean

    在Spring框架中,`@Autowired`和`@Resource`都是用于自动装配Bean的重要注解,它们简化了依赖注入的过程,使得代码更加简洁、易于维护。本文将深入探讨这两个注解的使用、区别以及如何在实际开发中应用它们。 首先...

    @Autowired 注解是如何实现的?(csdn)————程序.pdf

    在Java配置方式下,`@Autowired`的使用变得越来越普遍,尤其是在Spring Boot中。本篇文章将深入探讨`@Autowired`的多种用法以及其背后的实现机制。 ### @Autowired注解的用法 1. **构造函数注入**: ```java ...

    Spring注解@Resource和@Autowired.doc

    Spring 注解@Resource 和@Autowired Spring 框架中提供了两个重要的注解,分别是@Resource 和@Autowired,它们都是用于 bean 的自动装配的。了解这两个注解的区别和使用场景是非常重要的。 首先,@Autowired 是 ...

    软件框架-实现@Data@Configuration@Autowired@PropertySource@Test等功能的源代码包

    3.这个程序具体的内容我忘了,只知道使用@Data@Configuration@Autowired@PropertySource@Test(指定自定义文件的位置,开启对应配置)等方法写的,具体实现的功能就是新建几个.yml和.java文件,实现在.yml文件中配置...

    Spring @Autowired

    `@Autowired`注解可以用于字段、方法和构造函数,表明Spring容器会在运行时自动为这些成员提供合适的依赖。例如: ```java @Service public class UserService { private final UserRepository userRepository; ...

    Intellij IDEA如何去掉@Autowired 注入警告的方法

    在本篇文章中,我们将探讨如何在Intellij IDEA中去掉@Autowired 注入警告的方法。这个问题是很多开发者在使用Spring框架和Mybatis时经常遇到的问题。 首先,让我们了解为什么Intellij IDEA会显示红色告警。当我们在...

    12 @Autowired是如何工作的?-Spring注解源码深度揭秘-慕课专栏1

    `@Autowired`的`@Retention`设置为`RetentionPolicy.RUNTIME`,意味着该注解会在运行时仍然有效,允许在运行时通过反射等机制访问和处理注解信息。这样,Spring容器在初始化时可以通过反射获取到`@Autowired`注解,...

    Spring Ioc源码分析系列--@Autowired注解的实现原理.doc

    Spring Ioc源码分析系列--@Autowired注解的实现原理 @ Автоwired注解是 Spring Framework 中的一个重要组件,它提供了自动装配的功能,能够将 Bean 之间的依赖关系自动解析和注入。今天,我们将深入探讨 @...

    Spring使用@Autowired为抽象父类注入依赖代码实例

    如果我们直接使用@Autowired注解在抽象父类中,可能不会生效,因为抽象父类不能被实例化。那么,如何使用@Autowired为抽象父类注入依赖代码实例呢? 首先,我们可以使用@Component注解在子类中注入依赖项,但是这样...

    因Spring AOP导致@Autowired依赖注入失败的解决方法

    然而,在使用 Spring AOP 时,可能会导致@Autowired 依赖注入失败。本文将详细介绍因 Spring AOP 导致@Autowired 依赖注入失败的解决方法。 一、问题描述 在使用 Spring AOP 时,可能会遇到Autowired 依赖注入失败...

    自定义标签中@Autowired的属性为null

    自定义标签中@Autowired的属性为null 解决办法:两步 1.新建一个类SpringContext,实现接口ApplicationContextAware; 2.spring.xml中添加 3.使用SpingContext.getBean("bean名");获取

    详解Spring依赖注入:@Autowired,@Resource和@Inject区别与实现原理

    Spring 依赖注入:@Autowired,@Resource 和@Inject 区别与实现原理 Spring 依赖注入是指在应用程序中将对象之间的依赖关系自动装配的过程。Spring 框架提供了多种依赖注入方式,包括 @Autowired、@Resource 和@...

    详解SpringBoot 多线程处理任务 无法@Autowired注入bean问题解决

    在 SpringBoot 应用程序中,多线程处理任务是一个常见的场景,但是,在多线程处理任务中无法使用 @Autowired 注入 bean,这是一个常见的问题。今天,我们来讨论这个问题的解决方案。 问题描述: 在 SpringBoot 应用...

Global site tag (gtag.js) - Google Analytics