spring 默认scope
是 单例模式
有两种方式配置 多例模式:
- XML配置
<!--单例模式--> <bean id="hello" class="com.test.hello" init-method="init" scope="singleton"> <!--多例模式--> <bean id="hello" class="com.test.hello" init-method="init" scope="prototype">
- 注解配置
@Controller @Scope("prototype") public class HelloContorller { private int index=0; Logger logger=Logger.getLogger(HelloContorller.class.getName()); //hello world例子 @RequestMapping(value="/hello") public String hello(){ logger.info("spring mvc hello world!"+index++); return "hello"; } }
这里有个问题就是当index变量为静态时,那么尽管是多例模式下,对于每次请求访问,index变量都会累积相加。因此多例的产生原理不是简简单单是重新new一个控制器