java - 带有@Controller 注解的类是一个单独的对象吗?

标签 java spring spring-mvc tomcat io

我知道两个具有相同内容的请求使用不同的线程。而且我认为不同的线程会创建带有@Controller 注释的不同实例。但是当我运行下面的代码时,我发现我的想法是错误的。

测试代码:

@Controller
@RequestMapping("test")
public class TestADEDSAController {
    private String string = "";

    @RequestMapping("controllerTest")
    @ResponseBody()
    public String controllerTest(@RequestParam String string) {
        return this.string += string;
    }
}

第一次响应内容是这样的:

test

第二次是这样的:

testtest

JVM中好像只有一个Test实例。

我想知道JVM中是否总是只有一个@Controller实例?还有,哪里可以找到关于这个过程的详细介绍?

最佳答案

默认情况下,Spring 中的所有 bean 都创建为 singleton(每个 IOC 容器一个)。

这是 javadoc

(Default) Scopes a single bean definition to a single object instance per Spring IoC container.

关于java - 带有@Controller 注解的类是一个单独的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51537614/

相关文章:

spring - 在 AbstractAuthenticationProcessingFilter 中连接服务以添加身份验证详细信息

java - 使用我的第一个 Maven Spring Project 获取 org.springframework.beans.factory.BeanCreationException

java - Spring 启动 org.springframework.beans.factory.BeanCreationException : Could not autowire field:

java - 嵌套 for 循环输出不正确

java - Android OpenCV 创建矩形

java - 仅使用 catalina-ws.jar 在 Tomcat7 中拥有 REST Web 服务是否足够?

java - 使用@Transactional时EntityManager.persist()不插入数据

spring - Spring 中的 'init-method' 之类的东西,但在注入(inject)依赖项后调用?

java - Spring MVC Controller 方法的自定义授权/安全性

java - 在 Java 中用特殊字符前面的转义符替换特殊字符