spring boot增加@ComponentScan后就扫描不到其他包了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot增加@ComponentScan后就扫描不到其他包了相关的知识,希望对你有一定的参考价值。

spring boot启动类如果不加@ComponentScan就不能使用@service等注解,然而如果加了@ComponentScan后就扫描不到其他包了,网页就错误了,怎么办??

参考技术A

参考如下:

扫描多个包

@ComponentScan("com.a,com.b")
public class APP 
    public static void main(String[] args) 
        SpringApplication.run(APP.class, args);
    

以编程方式增加 Spring Boot 中的线程数

【中文标题】以编程方式增加 Spring Boot 中的线程数【英文标题】:Increase number of threads in spring boot programatically 【发布时间】:2019-08-23 04:29:32 【问题描述】:

我目前正在开发一个 Spring Boot 应用程序,它必须同时处理尽可能多的 http 请求。这就是我想修改线程数的原因。

就我而言,我需要以编程方式进行。我现在真的不知道如何处理它,因为我是 Tomcat 和 Springboot 的新手。

这里我提供了我的主要应用程序代码,它必须在端口 80 中运行。

@SpringBootApplication
public class App 
public static void main(String[] args) 
SpringApplication.run(App.class, args);


@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer 
public void customize(ConfigurableEmbeddedServletContainer configurableEmbeddedServletContainer) 
configurableEmbeddedServletContainer.setPort(80);




提前致谢!

【问题讨论】:

【参考方案1】:

您使用的是哪种嵌入式服务器?您可以使用 Tomcat 中的属性server.tomcat.max-threads 来控制线程数。 0 默认为 Tomcat 使用的 200 个线程。

当你说的时候

我目前正在开发一个 Spring Boot 应用程序,它必须同时处理尽可能多的 http 请求。

您是否关心向共享资源发送过多请求时的性能成本,例如数据库?

如果您不想调整原始数字,而是希望通过和处理尽可能多的 HTTP 线程,您应该考虑在 Spring 中进行异步调用。

要在 SpringBootApplication 中启用异步调用,请执行以下操作:

@EnableSync
@SpringBootApplication
public class App 
public static void main(String[] args) 
SpringApplication.run(App.class, args);

现在您可以在服务类中使用返回 Completable<Future> 的方法了。

除此之外,您真的不应该真正处理来自 Web 服务层的线程数。它实际上应该由应用程序服务器(Tomcat、Glassfish 等)处理,它将同时处理并向您的方法发出请求。

如果您的代码中存在瓶颈,在相同的硬件上,增加线程数不会提高性能,反而有可能降低性能。

看这里:Spring MVC Rest Services - Number of Threads (Controller Instances)

参考: https://www.e4developer.com/2018/03/30/introduction-to-concurrency-in-spring-boot/ https://spring.io/guides/gs/async-method/

【讨论】:

感谢您的快速回答。问题是我不允许使用异步调用......但是有没有办法以编程方式放置 500 个线程?我的http请求的代码太短了……所以我认为没有瓶颈。

以上是关于spring boot增加@ComponentScan后就扫描不到其他包了的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 中自动增加 mongo db?

Spring Boot 增加jar包

在 Spring Boot 中增加 HTTP Post maxPostSize

在 Spring-Boot 的嵌入式 Netty 中增加或移除内容长度限制

以编程方式增加 Spring Boot 中的线程数

(转) 增加 header 参数,spring boot + swagger2(springfox)