spring里的controller是单例的。系统针对每个controller只会初始化一个实例,所有的请求进来都是这一个实例进行处理的,controller里注入的service层也都是一个实例,但是每个新的请求进来之后进到service层,都会启动一个新的事务进行处理,每个请求进到service里互相之间的事务不会有影响,都是各自启动一个新的事务,但是假如service方法里又调用了另外一个service方法,这个就会使用到事务的传播级别了,假如service里的service1方法里调用了service2方法,调service1里已经有一个事务了,调service2是否再新起一个事务呢,项目里配置的传播级别一般都为REQUIRED,这个传播级别说的是会用service1里面的事务,针对service2方法不会再新启事务了。
单例只是说创建创建的controller和service对象实例是一个。
同一个controller示例,每次新的请求进来,每次调用都是一个单独的线程,具体方法中的事务属性,参数值等都是当前线程可见。所以互相不影响。
只有static的类属性,多个线程才会共享的。
单例只是说创建创建的controller和service对象实例是一个。
同一个controller示例,每次新的请求进来,每次调用都是一个单独的线程,具体方法中的事务属性,参数值等都是当前线程可见。所以互相不影响。
只有static的类属性,多个线程才会共享的。