首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@自动头发在@Configurable类中不工作

@自动头发在@Configurable类中不工作
EN

Stack Overflow用户
提问于 2016-07-08 13:37:34
回答 2查看 626关注 0票数 0

我希望能够在调用new()创建的实例中自动生成通用DAO服务.在我的java代码中。我理解@configurable是查看今年春天的医生的正确方法。

这是我的类代码

代码语言:javascript
复制
@Configurable(dependencyCheck=true)
public class DynVdynOperationsImpl implements DynVdynOperations {

    @Autowired
    private DynVdynInDbDao vdynDao;

我想在Junit测试和spring测试中使用它,如下所示

代码语言:javascript
复制
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { xxx.MainConfig.class })
@ActiveProfiles({ "database-test", "classpath" })
public class DynVdynOperationsImplTest {

   @Test
   public void testSend() {
   underTest = new DynVdynOperationsImpl();
   underTest.sendVdyn("0254", null, null);
   ... }

主配置类如下所示,

代码语言:javascript
复制
@Configuration
@EnableSpringConfigured
@ComponentScan(basePackages = {xxx })
public class MainConfig {
...
    @Bean
    @Scope("prototype")
    public DynVdynOperations vdynOperations () {
        return new DynVdynOperationsImpl();
    }

执行测试时,欠测试的vdynDao属性不能正确自动显示,并且仍然为空。看看这个类似的问题,我可能忽略了配置中有关AspectJ的内容。

有什么简单的方法让它发挥作用吗?也就是说,在创建对象时,我不想用锤子杀死苍蝇,而是在代码中插入刀?可能是直接从@Service对象中的代码调用spring工厂吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-12 07:01:18

这里似乎是最好和简单的方法来做到这一点。避免了使用AspectJ的复杂性。

配置类很好。每次我们要求Spring获得这个类的bean时,用@Scope("prototype")声明bean都会确保创建了一个新实例。

在测试类中,请让Spring容器使用应用程序上下文生成bean:

代码语言:javascript
复制
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { xxx.MainConfig.class })
@ActiveProfiles({ "database-test", "classpath" })
public class DynVdynOperationsImplTest {

   @Autowired
   ApplicationContext context;

   @Test
   public void testSend() {
   underTest = context.getBean(DynVdynOperations.class);
   underTest.sendVdyn("0254", null, null);
   ... }
票数 0
EN

Stack Overflow用户

发布于 2016-07-08 13:58:27

尝试在DynVdynOperationsImpl的类定义上添加一个@Scope("prototype")。

此外,我认为您需要命名bean,而不是“新DynVdynOperationsImpl”(即),然后使用: applicationContext.getBean("DynVdynOperations")创建它的一个新实例。使用getBean将告诉Spring处理它找到的连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38268104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档