小编and*_*erz的帖子

下载文件时返回字节数组或servlet输出流之间是否有区别

我想知道Sprin MVC控制器方法返回字节数组byte[]表示下载的文件时还是将InputStream对象复制到ServletOutputStream对象时是否存在真正的区别?

我要问的原因是我必须确保下载大文件时不会出现OutOfMemory错误。将通过ServletOutputStream帮助的传递文件避免了吗?

传递字节数组:

byte[] download() {
    return getUrlContentAsByteArray();
}
Run Code Online (Sandbox Code Playgroud)

传递ServletOutputStream:

void download(HttpServletResponse response) {
    InputStream content = getUrlContentAsStream();
    ServletOutputStream outputStream = response.getOutputStream();
    response.reset();response.setContentType(ContentType.APPLICATION_OCTET_STREAM.getMimeType());
    IOUtils.copyLarge(inputStream, outputStream);
}
Run Code Online (Sandbox Code Playgroud)

java spring-mvc download

5
推荐指数
1
解决办法
1331
查看次数

按名称的Spring自动装配参数

我有两种类型的豆子InterfaceA.我试图将bean注入到@Bean使用@Qualifier按名称自动装配的方法的参数中.令我惊讶的是,除非你的参数名称与bean名称匹配,否则Spring无法解析正确的bean.

我在努力:

@Component
public class ClassA implements InterfaceA {
}

@Component
public class ClassB implements InterfaceA {
}

@Configuration
public class AppConfig {
    @Bean
    @Autowired
    @Qualifier("classA")
    public SomeOtherClass someOtherClass(InterfaceA object) {...}
}
Run Code Online (Sandbox Code Playgroud)

但得到了NoUniqueBeanDefinitionException.但是,如果我使用参数名称匹配组件名称,它可以正常工作.

@Configuration
public class AppConfig {
    @Bean
    @Autowired
    public SomeOtherClass someOtherClass(InterfaceA classA) {...}
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么我不能使用名称@Resource@Qualifier在这里使用自动装配?

java spring

2
推荐指数
1
解决办法
1402
查看次数

标签 统计

java ×2

download ×1

spring ×1

spring-mvc ×1